poj-3641 Pseudoprime numbers(费马小定理)
生活随笔
收集整理的這篇文章主要介紹了
poj-3641 Pseudoprime numbers(费马小定理)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
判斷a ^ p = a % p ? (p是合數) ? ? ?true?yes:no
#include<stdio.h> #include<math.h> typedef long long LL; bool is_prime(LL p) {if(p == 1|| p == 2) return true;for(LL i = 2;i <= sqrt(p);i++)if(p%i==0) return false;return true; } LL fast_pow(LL x,LL p,LL MOD)//快速冪 {LL res = 1;while(p){if(p&1) res = (res * x) % MOD;x = (x*x)%MOD;p>>=1;}return res; } int main() {LL a,p;while(scanf("%lld%lld",&p,&a),p|a){if(is_prime(p)) {printf("no\n");continue;}LL r = fast_pow(a,p,p);if(r == a%p) printf("yes\n");//此處不能用r == 1作為判斷else printf("no\n");} }總結
以上是生活随笔為你收集整理的poj-3641 Pseudoprime numbers(费马小定理)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdu-4704 sum(费马小定理)
- 下一篇: 李伟山:金融撮合架构