1、题目链接:http://codeforces.com/problemset/problem/340/A
2、昨晚给虐惨了,这是唯一一道做出来的,求【a,b】内的所有“x,y的最小公倍数的倍数”。注意边界可能不像样例一样是倍数,所以要处理一下,稍稍缩小范围。
3、说起来这个程序还成功躲掉一次hack呢。。。那个人hack了将近10个选手的程序,只有我这个没成功,否则这回就要爆零了。。。伤不起。。。
#include<cstdio> using namespace std; int gcd(int x,int y){ return y==0?x:gcd(y,x%y); } int lcm(int x,int y){ return x*y/gcd(x,y); } int main() { int temp,count,x,y,a,b; while(scanf("%d%d%d%d",&x,&y,&a,&b)==4){ temp=lcm(x,y);count=0; while(a%temp!=0) a++; while(b%temp!=0) b--; count=(b-a)/temp+1; printf("%d\n",count); } return 0; }