def anti_divide_count(target, max)
  (target - 1) * (max / target) + max % target
end
a, b, c, d = gets.chomp.split(' ').map(&:to_i)
c1 = anti_divide_count(c, b) - anti_divide_count(c, a)
d1 = anti_divide_count(d, b) - anti_divide_count(d, a)
cd1 = anti_divide_count(c.lcm(d), b) - anti_divide_count(c * d, a)
ans = c1 + d1 - cd1
ans += 1 if a % c != 1 && a % d != 1
puts ans