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 }
posted @ 2015-04-19 17:13  hxy_has_been_used  阅读(173)  评论(0编辑  收藏  举报