hide handkerchiefTime Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7277 Accepted Submission(s): 3275 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.
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.
Output For each input case, you should only the result that Haha can find the handkerchief or not.
Sample Input 3 2 -1 -1
Sample Output YES |
题意:总共有N个人围成一圈,从第一个人开始遍历,跳过M-1个人后继续遍历,问是否能够遍历到所有人。
思路:简单的数论——如果N,M是互质的则YES,否则NO。
进阶相关题目:codeforces_1011E:http://codeforces.com/contest/1011/problem/E
代码:
#include<iostream>
#include<algorithm>
#include<vector>
#include<list>
#include<queue>
#include<set>
#include<cmath>
#include<iomanip>
#include<stack>
#include<cstring>
#include<map>
#define N 100000
#define LL long long int
using namespace std;
const LL MOD=1e19;
int gcd(int a,int b){
if(a%b==0)
return b;
else return gcd(b,a%b);
}
int main(){
int n,m;
while(cin>>n>>m){
if(n==-1||m==-1)
return 0;
if(gcd(n,m)==1){
cout<<"YES";
}
else cout<<"POOR Haha";
cout<<endl;
}
}