題意:n個位置圍成一圈,每次加m,問是否能遍歷完所有的點
思路:設位置下標爲p,則存在k和x能使p+nk=xm成立。則m和n互質可以使得p從0到n-1都能取到。
#include<iostream>
using namespace std;
int gcd(int m,int n)
{
while(m!=0)
{
int t=n%m;
n=m;
m=t;
}
return n;
}
int main()
{
int p;
cin>>p;
while(p--)
{
int m,n;
cin>>m>>n;
int g=gcd(m,n);
if(g!=1) cout<<"YES"<<endl;
else cout<<"NO"<<endl;
}
}