## 思路
容斥原理。
容易得到,答案为 $b-a+1$ $-$ 能被 $c$ 整除的数的个数 $-$ 能被 $d$ 整除的数的个数 $+$ 能被 $c$ 和 $d$ 整除的数的个数。
部分用最小公倍数求即可。
## 代码
```cpp
#include <bits/stdc++.h>
using namespace std;
#define int long long
int a, b, c, d;
int gcd(int x, int y) {
if (!y) return x;
else return gcd(y, x % y);
}
int lcm(int p, int q) {
return p * q / gcd(p, q);
}
int ans = 0;
signed main() {
cin >> a >> b >> c >> d;
ans = (b - a + 1) - (b / c - (a - 1) / c) - (b / d - (a - 1) / d) + (b / lcm(c, d) - (a - 1) / lcm(c, d));
cout << ans << endl;
return 0;
}
```