|
Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) |
Total Submission(s): 8026 Accepted Submission(s): 2571 |
Problem Description The Children’s Day has passed for some days .Has you remembered something happened at your childhood? I remembered I often played a game called hide handkerchief with my friends. 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". 儿童的时代已经过去了。你还记得你童年时发生过的事吗?我记得我经常和朋友一起玩一个叫做皮手帕的游戏。 |
Input There will be several test cases; each case input contains two integers N and M, which satisfy the relationship: 1<=M<=100000000 and 3<=N<=100000000. When N=-1 and M=-1 means the end of input case, and you should not process the data. 会有几个测试用例; 每个情况输入包含两个整数N和M,满足关系:1 <= M <= 100000000和3 <= N <= 100000000。 当N = -1和M = -1意味着输入大小写的结束,并且您不应该处理数据。 |
Output For each input case, you should only the result that Haha can find the handkerchief or not. 对于每一个输入案例,你只应该得到哈哈可以找到手帕的结果。 |
Sample Input 3 2 |
Sample Output YES |
本题解题难度在于如何把查找手帕这个过程抽象出求公约数的过程
c++
#include <iostream>
#include<string>
using namespace std;
int gcd(int a, int b){ //函数用于递归求最大公约数
if (b == 0)
return a;
else
return gcd(b, a%b);
}
int main(){
int m, n;
while (cin>>n>>m){
if (n == -1 && m == -1)
break;
if (gcd(n,m)!=1)
cout << "POOR Haha" << endl;
else //最大公约数为1
cout << "YES" << endl;
}
return 0;
}
运行截图