题目大意:有一只狼和一只兔子,兔子只能躲在n个洞(编号0~n-1)中的任意一个洞里,狼则每跑m个洞会进洞看看兔子有没有在里面。
              现在给出一个n,m求兔子是否安全。
              例如当n=6,m=2时,狼只能够进去0,2,4三个洞,而兔子只要躲在1,3,5这几个洞里就安全了。


解题思路:利用互质和非互互质的性质。
              对于狼来说,他能进的洞是(m*i)%n,i是奔跑的次数。
              1)n与m互质,(m*i)%n显然可以得到任意的余数,也就是可以进去任意的洞,那么兔子绝对是不安全的。
              2)n与m不互质,(m*i)%n,当i=n/gcd(n,m)时,狼回到了0这个洞又重新开始循环,所以,绝对存在一个洞没有被狼访问过。
 1#include <iostream>
 2#include <cstdio>
 3#include <cstring>
 4
 5using namespace std;
 6
 7int T,n,m,temp;
 8
 9int gcd(int x,int y)
10if (!|| !y) return x>y?x:y;
11  for (int t; t=x%y; x=y, y=t);
12  return  y;
13}

14
15int main()
16{ cin >> T;
17  while (T--)
18  {  cin >> m >> n;
19     temp=gcd(m,n);
20     if (temp==1) cout << "NO" << endl;
21     else cout << "YES" << endl;
22  }

23  return 0;
24}

25