1. 程式人生 > >Wolf and Rabbit

Wolf and Rabbit

存在 from sample 分析 color 無法 nsis pos utf

There is a hill with n holes around. The holes are signed from 0 to n-1.

技術分享


A rabbit must hide in one of the holes. A wolf searches the rabbit in anticlockwise order. The first hole he get into is the one signed with 0. Then he will get into the hole every m holes. For example, m=2 and n=6, the wolf will get into the holes which are signed 0,2,4,0. If the rabbit hides in the hole which signed 1,3 or 5, she will survive. So we call these holes the safe holes.

InputThe input starts with a positive integer P which indicates the number of test cases. Then on the following P lines,each line consists 2 positive integer m and n(0<m,n<2147483648).
OutputFor each input m n, if safe holes exist, you should output "YES", else output "NO" in a single line.
Sample Input

2
1 2
2 2

Sample Output

NO
YES

題意 : 狼可以每次走m步,而這裏有n個洞,問是否存在狼無法走到的洞讓兔子藏身。
分析 : 只要n和m存在著最大公約數,那麽狼就會一直在0,最大公約數,m的位置上循環,不會走到其他的洞上去。
這裏簡單講一下最大公約數和最小公倍數的算法:
    最大公約數
int gcd(int i,int j)
{
    if(j==0)
        return i;
    else
        gcd(j,i%j);
}
    最小公倍數 = i*j/最大公約數
代碼:
#include <iostream>

using
namespace std; int gcd(int i,int j) { if(j==0) return i; else gcd(j,i%j); } int main() { int T; while(cin >> T) { while(T--) { int a,b; cin >> a >> b; if(gcd(a,b)==1) cout << "NO"; else cout << "YES"; cout << endl; } } }

 

Wolf and Rabbit