poj 3641 Fermat 与素数的判断
2013-09-26 20:25
246 查看
题意:给出p和a,判断p是否为非素数并且也满足a^p=a(mod p),如果是,输出yes,否则输出 no。
简单的素数判断!,与fermat定理的应用。
简单的素数判断!,与fermat定理的应用。
#include<iostream> #include<cstdio> #include<cstring> typedef __int64 INT; using namespace std ; bool Isprime(int num) { if((num>2&&num%2==0)||num==1) return 0; for(int i=3;i*i<=num;i+=2){ if(num%i==0) return 0; } return 1; } INT Format_Mod(INT a,INT k,INT m) { INT ans=1; while(k){ if(k&1) ans=a*ans%m; a=(a*a)%m; k>>=1; } return ans; } int main() { INT a,p,res; while(scanf("%I64d %I64d",&p,&a),(a||p)){ if(!Isprime(p)){ res=Format_Mod(a,p,p); if(res==a) puts("yes"); else puts("no"); } else puts("no"); } return 0 ; }
相关文章推荐
- POJ 3641 快速幂+素数判断
- poj 3641 快速幂+米勒罗宾判断大素数
- POJ 3641 -- 快速幂运算,素数判定
- POJ 3641 素数打表+快速幂 简单题
- POJ 3641 : Pseudoprime numbers - 米勒罗宾素数测试
- 判断素数+二分快速求幂——pku3641
- POJ2909_Goldbach's Conjecture【素数判断】【水题】
- poj2262---素数(质数)的判断
- POJ 1811 大素数判断
- 【POJ】-3641-Pseudoprime numbers(快速幂,大数素数判定)
- POJ1811 Prime Test(判断随机素数)
- POJ - 3641 Pseudoprime numbers <快速幂加素数判定>
- POJ 1811 大整数素数判断 Miller_Rabin
- 大素数判断+求最小质因数(模板)——pku3641
- POJ 3641 Pseudoprime numbers(快速幂+素数判定)
- POJ 3641 Pseudoprime numbers 伪素数测试
- 大素数判断_fermat素性测试+Miller-Rabin素性测试
- poj2262 - 素数判断
- poj 2262【素数表的应用---判断素数】【哈希】
- POJ 1811 Prime Test(大素数判断和素因子分解)