杭电1222
题意:0,1,2......(n-1)一共n个洞环绕一个小岛,狼从0开始每m个洞搜寻一个,问是否存在狼搜不到的洞。
Analyse:m=xd,n=yd,所以有ym=xn,表示一个搜索周期会经过xn个洞,若n与m的最大公约数d为1,则一个周期经过的洞数为mn(即m圈),因为每一圈搜的洞数为n/m,全部洞搜完的圈数为n/(n/m)=m,这就表示已经把所有洞搜遍。所以gcd(m,n)=1是搜遍所有洞的充要条件。
View Code
1 #include<stdio.h> 2 int gcd(int a,int b) 3 { 4 int temp; 5 if(a<b) 6 { 7 temp=a; 8 a=b; 9 b=temp; 10 } 11 while(a%b) 12 { 13 temp=a%b; 14 a=b; 15 b=temp; 16 } 17 return b; 18 } 19 int main() 20 { 21 int n,m,c; 22 scanf("%d",&c); 23 while(c--) 24 { 25 scanf("%d%d",&m,&n); 26 if(gcd(n,m)==1) 27 printf("NO\n"); 28 else 29 printf("YES\n"); 30 } 31 return 0; 32 }


浙公网安备 33010602011771号