hide handkerchief
Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3401 Accepted Submission(s): 1608
Now I introduce the game to you. Suppose there are N people played the game ,who sit on the ground forming a circle ,everyone owns a box behind them .Also there is a beautiful handkerchief hid in a box which is one of the boxes .
Then Haha(a friend of mine) is called to find the handkerchief. But he has a strange habit. Each time he will search the next box which is separated by M-1 boxes from the current box. For example, there are three boxes named A,B,C, and now Haha is at place of A. now he decide the M if equal to 2, so he will search A first, then he will search the C box, for C is separated by 2-1 = 1 box B from the current box A . Then he will search the box B ,then he will search the box A.
So after three times he establishes that he can find the beautiful handkerchief. Now I will give you N and M, can you tell me that Haha is able to find the handkerchief or not. If he can, you should tell me "YES", else tell me "POOR Haha".
3 2 -1 -1
YES
求两个数是否互质!
欧几里得算法(辗转相除法)
int gcd(int a,int b){if(b==0)return a;else return gcd(b,a%b);} //递归法求最大公约数,当最大公约数是1的时候,两个数互质if(gcd(x,y)==1)那么x,y互质
本题代码如下
///互质,公约数只有1的两个整数,叫做互质整数·公约数只有1的两个自然数,叫做互质自然数,后者是前者的特殊情形·。 #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> #include<math.h> using namespace std; int gcd(int a,int b) { if(b==0)return a; else return gcd(b,a%b); } int main() { int n,m; while(~scanf("%d%d",&n,&m)) { if(n==-1&&m==-1) break; int t=gcd(n,m); if(t==1) printf("YES\n"); else printf("POOR Haha\n"); } }