A|B?

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 18605    Accepted Submission(s): 14122


Problem Description
正整数A是否能被正整数B整除,不知道为什么xhd会研究这个问题,来帮帮他吧。
 

 

Input
输入数据的第一行是一个数据T,表示有T组数据。
每组数据有两个正整数A和B(A,B<10^9)。
 

 

Output
对于每组输入数据,输出"YES"表示可以被整除,"NO"表示不能被整除。
 

 

Sample Input
2 4 2 5 3
 

 

Sample Output
YES NO

 

能否被整除,转化为最大公约数是否和其中一个数相等

 

#include <iostream>

using namespace std;

long gcd(long a, long b)
{
    while (a != b)
    {
        while (a > b)
        {
            a = a - b;
        }
        while (b > a)
        {
            b = b - a;
        }
    }
    return a;
}

int main()
{
    int T;
    long a, b,ab;
    cin >> T;
    for (int i = 0; i < T; i++)
    {
        cin >> a >> b;
        ab = gcd(a, b);
        if (a == ab || b == ab)
        {
            cout << "YES" << endl;
        }
        else
        {
            cout << "NO" << endl;
        }
    }
    return 0;
}