http://acm.hdu.edu.cn/showproblem.php?pid=1222
个人觉得是一道挺经典的数论题,想了有一会儿,第一次wa了,一看才发现是求lcm时导致溢出,然后发现其实化简后根本用不到lcm只用到gcd就好。
代码如下:
#include"stdio.h" int gcd(int m,int n) { int a,b,c; a=m>n?m:n; b=m<n?m:n; c=a%b; while(c!=0) { a=b; b=c; c=a%b; } return b; } int main( ) { int m,n,t; scanf("%d",&t); while(t--) { scanf("%d%d",&m,&n); if((n/gcd(m,n))<n)//这一步开始没有化简到最后导致溢出; printf("YES\n"); else printf("NO\n"); } return 0; }