原题链接:点击此处
题意:
狼捉兔子,兔子躲在n个洞中一个,这n个洞围成一个圈,狼会从第0号洞开始,搜索隔m的洞,一直搜索下去, 问是否存在洞另狼永远搜索不到。
对于输入的m,可以看作是狼的步伐。
对于输入的n,用0到n-1围成一圈。
思路:
如果m和n有最大公约数(非1),则有一些标号的洞坑狼永远到达不了,兔子有洞坑可以躲,是安全的;如果m和n没有最大公约数(最大公约数为1),则狼可以到达任意的洞坑,兔子无处可躲。
#include <iostream> #include <stdio.h> using namespace std; int main() { int p; long m,n; scanf("%d",&p); while(p--) { scanf("%ld %ld",&m,&n); while(n!=0) { int t=m%n; m=n; n=t; } printf("%s ",m==1?"NO":"YES"); } return 0; }