1. 程式人生 > >my dream is possible

my dream is possible

<table cellspacing="0" cellpadding="0" width="100%" align="center"><tbody><tr><td class="problem_content"><div class="panel_content">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".</div><div class="panel_bottom"> </div></td></tr><tr><td class="problem_content"><div class="panel_title" align="left">Input</div><div class="panel_content">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.</div><div class="panel_bottom"> </div></td></tr><tr><td class="problem_content"><div class="panel_title" align="left">Output</div><div class="panel_content">For each input case, you should only the result that Haha can find the handkerchief or not.</div><div class="panel_bottom"> </div></td></tr><tr><td class="problem_content"><div class="panel_title" align="left">Sample Input</div><div class="panel_content"><pre>3 2
-1 -1
Sample Output
YES
  Source HDU 2007-6 Programming Contest Recommend xhd
判斷兩個數是否互質 即最大公因數為一 
也就是  
gcd 歐幾里德演算法。
。。
輾轉相除法。
#include<iostream>
#include<cmath>
using namespace std;
int gcd(int m,int n)
{
       if (m < n)
       {
              int tmp = m;
              m = n;
              n = tmp;
       }
       if (n == 0)
              return m;
       else
              return gcd(n,m % n);
}
int main()
{
    int n,m;
    while(cin>>n>>m)
    {
        if(n==-1&&m==-1)
        break;
        int i,j;
        int x;
        int  flag;
        flag=gcd(n,m);
        if(flag!=1)
        {
            cout<<"POOR Haha"<<endl;
        }
        else
        {
            cout<<"YES"<<endl;
        }
    }
    return 0;
}