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 }
AC代码

 

以上是关于POJ 3641 Pseudoprime numbers(快速幂)的主要内容,如果未能解决你的问题,请参考以下文章

POJ3641 Pseudoprime numbers(快速幂+素数判断)

POJ-3641 Pseudoprime numbers---快速幂

Pseudoprime numbers POJ - 3641

POJ 3641 Pseudoprime numbers (快速幂)

Pseudoprime numbers POJ 3641(快速幂)

POJ3641 Pseudoprime numbers (幂取模板子)