Description
有一个有n洞个的山丘。 洞从0到n-1标号。
一只兔子必须隐藏在其中一个洞里。 一只狼按逆时针顺序搜索兔子。 他进入的第一个洞是与标号为0的一个洞。然后他会进标号加m的那个洞。 例如,m = 2和n = 6,狼将进入被标记为0,2,4,0的孔。 如果兔子隐藏在1,3或5号的洞里,她就会生存下去。 所以我们把这些洞叫做安全的洞。
Input
输入开始是表示测试用例数的正整数P. 然后在以下P行上,每行包括2个正整数m和n(0 ,n <2147483648)。
Output
对于每个输入m,n,如果存在安全洞,则应输出“YES”,否则在单行中输出“NO”。
Sample Input
2
1 2
2 2
Sample Output
NO
YES
欧几里得算法...(N水)
Code:
#include <iostream>
using namespace std;
int gcd(int x, int y) // 求最大公约数.
{
return (x % y) ? gcd(y, x % y) : y;
}
int main(void)
{
int x, y;
scanf("%d", &x); // 由于作者很懒,就懒得定义n
while (~scanf("%d%d", &x, &y)) // 所以这里就要这样
{
printf("%s\n", (gcd(x, y) - 1) ? "YES" : "NO"); // 再次偷懒.
}
return 0;
}