【POJ】[3641]Pseudoprime numbers
2016-07-25 17:36
316 查看
由题意知
伪素数满足:
①p不是素数
②存在 1 < a < p使得ap = a (mod p)
现在给出p和a
问当前a能否使p是伪素数
因为数字较大
所以判断素数可直接判断
幂可使用快速幂取模
#include<stdio.h> bool prime(int m) { for(int i=2; i*i<=m; i++) if(m%i==0) return false; return true; } int pow(int a,int b) { int MOD=b; __int64 r=1,t=a%MOD; while(b) { if(b&1) r=r*t%MOD; t=t*t%MOD; b>>=1; } return (int)r; } bool judge(int n,int m) { if(prime(n)) return false; if(pow(m,n)==m%n) return true; return false; } int main() { int p,a; while(scanf("%d %d",&p,&a),p||a) { if(judge(p,a)) printf("yes\n"); else printf("no\n"); } return 0; }
题目地址:【POJ】[3641]Pseudoprime numbers
相关文章推荐
- 初学ACM - 组合数学基础题目PKU 1833
- POJ ACM 1001
- POJ ACM 1002
- 1611:The Suspects
- POJ1089 区间合并
- POJ 2159 Ancient Cipher
- POJ 2635 The Embarrassed Cryptographe
- POJ 3292 Semi-prime H-numbers
- POJ 2773 HAPPY 2006
- POJ 3090 Visible Lattice Points
- POJ-2409-Let it Bead&&NYOJ-280-LK的项链
- POJ-1695-Magazine Delivery-dp
- POJ1523 SPF dfs
- POJ-1001 求高精度幂-大数乘法系列
- POJ-1003 Hangover
- POJ-1004 Financial Management
- [数论]poj2635__The Embarrassed Cryptographer
- [二分图匹配]poj2446__Chessboard
- POJ1050 最大子矩阵和
- 用单调栈解决最大连续矩形面积问题