# A=gets.to_i
# B=gets.split.map(&:to_i)
# C=N.times.map{gets.to_i}
# D=N.times.map{gets.split.map(&:to_i)}
# S=gets.chomp
# MOD=1000000007


A,B,C,D=gets.split.map(&:to_i)

AC=(A-1)/C
BC=B/C
AD=(A-1)/D
BD=B/D
ACD=(A-1)/(C.lcm(D))
BCD=B/(C.lcm(D))

puts (B-BC-BD+BCD)-(A-1-AC-AD+ACD)