hdu 1222 AND 2104 数论

两道题基本一样。

判断两个数是否互质即可。

设x为走的步数,m为间距,则需要判断 x * m % n 是否可以充满0到n - 1的闭区间。

互质的话,存在逆元,所以一定可以。

hdu 1222:

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int gcd( int a, int b )
 5 {
 6     return b ? gcd( b, a % b ) : a;
 7 }
 8 
 9 int main()
10 {
11     int t;
12     cin >> t;
13     while ( t-- )
14     {
15         int x, y;
16         cin >> x >> y;
17         cout << ( gcd( x, y ) != 1 ? "YES" : "NO" ) << endl;
18     }
19     return 0;
20 }

hdu 2104:

 1 #include <iostream>
 2 using namespace std;
 3 
 4 int gcd( int x, int y )
 5 {
 6     return y ? gcd( y, x % y ) : x;
 7 }
 8 
 9 int main()
10 {
11     int a, b;
12     while ( cin >> a >> b )
13     {
14         if ( a == -1 && b == -1 ) break;
15         cout << ( gcd( a, b ) == 1 ? "YES" : "POOR Haha" ) << endl;
16     }
17     return 0;
18 }
原文地址:https://www.cnblogs.com/huoxiayu/p/4439478.html