hdu 1222

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;
}
原文地址:https://www.cnblogs.com/chaosheng/p/2489151.html