#include<bits/stdc++.h>
#define endl '\n'
#define int long long
#define And << " " <<
#define reset(a, x) memset(a, x, sizeof(a))
#define FOR(i, l, r) for (int i = l; i <= r; i++)
#define fast() ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
using namespace std;
const int N = 1e2 + 5;
int lcm(int a, int b) {
return (a / __gcd(a, b)) * b;
}
int32_t main()
{
fast();
freopen("countnum", "r", stdin);
freopen("countnum", "w", stdout);
int l, r, a, b;
cin >> l >> r >> a >> b;
int t = lcm(a, b);
int c = (r / a) - ((l-1) / a);
int d = (r / b) - ((l-1) / b);
int e = (r / t) - ((l-1) / t);
cout << (r-l+1) - (c + d - e);
cout << '\n' << "\n"; return 0;
}
//2 14 3 8
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}