import scala.io.{StdIn => in}

object Main extends App {
  val Array(a, b, c, d) = in.readLine.split(" ").map(_.toLong)

  val a1 = b / c
  val a2 = a / c
  val b1 = b / d
  val b2 = a / d

  val a3 = a1 - a2
  val b3 = b1 - b2

  def gcd(a:Long, b:Long):Long = {
    if(b == 0) a
    else gcd(b, a%b)
  }

  val lcm = c * d / gcd(c, d)

  val c1 = b / lcm
  val c2 = a / lcm

  val c3 = c1 - c2

  val t = a match {
    case x if a % c == 0 && a % d == 0 && a % lcm == 0 => 3
    case x if a % c == 0 && a % d == 0 => 2
    case x if a % c == 0 && a % lcm == 0 => 2
    case x if a % lcm == 0 && a % d == 0 => 2
    case x if a % c == 0 || a % d == 0 || a % lcm == 0 => 1
    case _ => 0
  }
  debug(a3, b3, c3, lcm, t, b-a)
  val ans = ((1 + b - a - t) - (a3 + b3 - c3)) max 0
  println(ans)

  def debug(any:Any*):Unit = {
    if(this.getClass.toString != "class Main$")
      println(any.mkString(" "))
  }
}