POJ 3641 Pseudoprime numbers(快速幂)
Posted new-ljx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POJ 3641 Pseudoprime numbers(快速幂)相关的知识,希望对你有一定的参考价值。
嗯...
题目链接:http://poj.org/problem?id=3641
AC代码:
1 #include<cstdio> 2 #include<iostream> 3 4 using namespace std; 5 6 inline bool is_prime(int x){ 7 if(x == 2) return 1; 8 if(x % 2 == 0) return 0; 9 for(int i = 3; i * i <= x; i += 2){ 10 if(!(x % i)) return 0; 11 } 12 return 1; 13 } 14 15 inline long long quick_mod(long long a, long long b, long long m){ 16 long long ans = 1; 17 while(b){ 18 if(b & 1) ans = ans * a % m; 19 a = a * a % m; 20 b >>= 1; 21 } 22 return ans; 23 } 24 25 int main(){ 26 long long m, n; 27 while(~scanf("%lld%lld", &m, &n) && m + n){ 28 if(is_prime(m)){ 29 printf("no "); 30 continue; 31 } 32 long long ans; 33 ans = quick_mod(n, m, m); 34 if(ans == n) printf("yes "); 35 else printf("no "); 36 } 37 return 0; 38 }
以上是关于POJ 3641 Pseudoprime numbers(快速幂)的主要内容,如果未能解决你的问题,请参考以下文章
POJ3641 Pseudoprime numbers(快速幂+素数判断)
POJ-3641 Pseudoprime numbers---快速幂
Pseudoprime numbers POJ - 3641
POJ 3641 Pseudoprime numbers (快速幂)