A.The Wall
题意:两个人粉刷墙壁,甲从粉刷标号为x,2x,3x...的小块乙粉刷标号为y,2y,3y...的小块问在某个区间内被重复粉刷的小块的个数。
分析:求出x和y的最小公倍数,然后做一个一维的区间减法就可以了。
#include <cstdlib> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; typedef long long LL; int x, y, a, b; int main() { scanf("%d %d %d %d", &x, &y, &a, &b); int d = __gcd(x, y); int lcm = x / d * y; printf("%d\n", b/lcm - (a-1)/lcm); return 0; }