poj 3641 Pseudoprime numbers
来源:互联网 发布:php continue 编辑:程序博客网 时间:2024/04/29 21:41
Description
Fermat's theorem states that for any prime number p and for any integer a > 1, ap = a (mod p). That is, if we raise a to the pth power and divide by p, the remainder is a. Some (but not very many) non-prime values of p, known as base-a pseudoprimes, have this property for some a. (And some, known as Carmichael Numbers, are base-a pseudoprimes for all a.)
Given 2 < p ≤ 1000000000 and 1 < a < p, determine whether or not p is a base-a pseudoprime.
Input
Input contains several test cases followed by a line containing "0 0". Each test case consists of a line containing p and a.
Output
For each test case, output "yes" if p is a base-a pseudoprime; otherwise output "no".
Sample Input
3 210 3341 2341 31105 21105 30 0
Sample Output
nonoyesnoyesyes
题意:给出两个数p,a 如果p不是合数输出no 否则判断a的p次方对p取模之后是不是等于a
#include<stdio.h>__int64 a,p;__int64 quickpow(__int64 x,__int64 y,__int64 m){__int64 ans = 1;while(y){if(y&1){ans=(x * ans) % m;}x = (x * x ) % m;y >>= 1;}return ans;}bool prime(__int64 n){ if((n > 2 && n % 2 == 0) || (n == 1)) return false; bool flag=true; for(int i = 3;i * i <= n;i += 2) { if(n % i == 0) { flag = false; break; } } return flag; }int main(){while(~scanf("%I64d%I64d",&p,&a)){if( p == 0 && a == 0) break; if(!prime(p)){if( quickpow(a,p,p) == a ) printf("yes\n");else printf("no\n"); } else printf("no\n");}return 0;}
- POJ-3641-Pseudoprime numbers
- POJ 3641-Pseudoprime numbers
- poj 3641 Pseudoprime numbers
- poj 3641 Pseudoprime numbers
- POJ 3641 Pseudoprime numbers
- poj 3641 Pseudoprime numbers
- POJ-3641 Pseudoprime numbers
- POJ 3641 Pseudoprime numbers
- 【POJ 3641】Pseudoprime numbers
- poj 3641 Pseudoprime numbers
- POJ-3641 Pseudoprime numbers
- Pseudoprime numbers POJ 3641
- poj 3641 Pseudoprime numbers
- poj 3641 Pseudoprime numbers
- POJ - 3641 Pseudoprime numbers
- 【 POJ 3641 】Pseudoprime numbers
- 【POJ 3641】Pseudoprime numbers
- 【POJ】[3641]Pseudoprime numbers
- Android初学之Parcel和Parcelable
- OpenCV | Windows 配置 opencv
- [从头学数学] 第243节 关于平衡二叉树的Python实现
- QMenuBar
- ANDROID内存优化(大汇总)
- poj 3641 Pseudoprime numbers
- Android 底部弹出式菜单
- java反射的应用(Hibernate)
- 让dedecms搜索页面支持标签调用及自定义字段调用的方法
- 经典算法面试题目-判断两个字符串是否是变位词(1.4)
- 009-合并表记录
- [codeforce ] Vacations [贪心]
- LA 3644 X-Plosives [并查集]
- HDOJ-1061 Rightmost Digit