let input = readLine()!.characters.split(" ").map{Int(String($0))!}
let (A, B, C, D) = (input[0], input[1], input[2], input[3])
let tmp = lcm(C, D)
let tmp1 = B/C - (A-1)/C        // AからBまでのうちCで割り切れる数の個数
let tmp2 = B/D - (A-1)/D        // AからBまでのうちDで割り切れる数の個数
let tmp3 = B/tmp - (A-1)/tmp    // AからBまでのうちCとD両方で割り切れる数の個数
let tmp4 = tmp1 + tmp2 - tmp3   // AからBまでのうちCもしくはDで割り切れる数の個数
print(B - A + 1 - tmp4)