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 }

你可能感兴趣的:(HDU)