Description
GJJ好无聊啊,于是去找小伙伴玩。。。。
他们现在玩这样个游戏,GJJ和小伙伴n个人站成一排,从左到右依次报数,到达最右端折回继续报数,重复这个过程。直到所有人都报过k的倍数游戏结束。
问:这个游戏能否一直继续下去?
Input
输入数据多组;每组输入一行n和k,(2<=n<=1000000000)输入到文件尾结束.
Output
每组输出一行,能一直继续输出"Yes",否则输出"No".
Sample Input
4 3
3 3
Sample Output
Yes
No
gcd是1则可以报完k倍数
#include <bits/stdc++.h>
using namespace std;
#define LL long long
LL gcd(LL a,LL b)
{
if(b==0) return a;
gcd(b,a%b);
}
int main()
{
LL k,n;
while(~scanf("%lld%lld",&n,&k))
{
if(gcd(2*n-2,k)==1)
puts("No");
else
puts("Yes");
}
return 0;
}