
#include <bits/stdc++.h>
using namespace std;
long long lcm(long long a,long long b){
long long c=a,d=b;
while(a&&b){
if(a>=b) a%=b;
else b%=a;
}
long long gcd=a+b;
return c*d/gcd;
}
int main(){
long long a,b,c,d;
cin>>a>>b>>c>>d;
long long l=a,r=b;
while(1){
l++;
if(l%c==0) break;
}
while(1){
r--;
if(r%c==0) break;
}
long long cnt1=(r-l)/c+1;
l=a,r=b;
while(1){
l++;
if(l%d==0) break;
}
while(1){
r--;
if(r%d==0) break;
}
l=a,r=b;
long long cnt2=(r-l)/d+1;
long long lc=lcm(c,d);
while(1){
l++;
if(l%lc==0) break;
}
while(1){
r--;
if(r%lc==0) break;
}
long long cnt3=(r-l)/lc+1;
cout<<b-a+1-cnt1-cnt2+cnt3<<'\n';
return 0;
}