hdu1395-2^x mod n = 1
2013-07-22 18:54
281 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1395
原理为 a ^ b % n == d ; >>>>>> (( a % n ) ×(a % n ) ×........*(a % n ))%n == d
然后该题当n == 1 或者 n % 2 == 0 时 ,d肯定为 0 ,所以此时无解;
而当n为其他值时,必有1~n - 1的余数存在,因此直接使用求解a ^ b %n ==d 的方法求解即可
原理为 a ^ b % n == d ; >>>>>> (( a % n ) ×(a % n ) ×........*(a % n ))%n == d
然后该题当n == 1 或者 n % 2 == 0 时 ,d肯定为 0 ,所以此时无解;
而当n为其他值时,必有1~n - 1的余数存在,因此直接使用求解a ^ b %n ==d 的方法求解即可
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<bitset> #include<iomanip> using namespace std; int main() { int a , b , n ; while( ~scanf( "%d" ,&n ) ) { if( n == 1 || n % 2 == 0 ) { printf( "2^? mod %d = 1\n" , n ); } else { b = 1 ; int temp = 2 ; while( temp != 1 ) { b++ ; temp = ( temp * 2 ) % n ; } printf( "2^%d mod %d = 1\n" , b , n ) ; } } return 0 ; }
相关文章推荐
- Hdu 1395 2^x mod n = 1
- HDU-1395-2^x mod n = 1(数学题(二次出错))
- hdu 1395 2^x mod n = 1
- HDU 1395 2^x mod n = 1【数学】
- 【HDU】1395 2 ^ x mod n = 1
- hdu 1395 2^x mod n = 1
- HDU-1395 2^x mod n = 1
- HDU 1395 2^x mod n = 1
- hdu 1395 2^x mod n = 1 (简单数论)
- hdu-1395 2^x mod n = 1
- ACM 数论 hdu 1395 2^x mod n = 1
- hdu 1395(2^x mod n = 1)
- HDU 1395 2^x mod n = 1
- hdu 1395 2^x mod n = 1
- HDU——1395 2^x mod n = 1(取模运算法则)
- hdu1395 2^x mod n = 1(数论:快速幂取模+欧拉定理)
- HDU 1395 2^x mod n = 1(暴力枚举)
- HDU 1395 2^x mod n = 1(快速幂取模)
- Hdu 1395 2^x mod n = 1 (欧拉定理 分解素因数)
- hdu 1395 2^x mod n = 1