POJ 3641 Pseudoprime numbers 测试费马小定理伪素数
来源:互联网 发布:赶尸术 知乎 编辑:程序博客网 时间:2024/05/29 02:16
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
Source
//384K16MS#include<stdio.h>#include<math.h>bool isprime(long long x)//判断x是不是素数,如果是素数,肯定不是伪素数{ if(x==1||x==2)return true; long long tmp=sqrt(x); for(long long i=2;i<=tmp;i++) if(x%i==0)return false; return true;}long long quick_mod(long long a,long long b,long long m)//快速幂求a^b%m{ long long ans=1; while(b) { if(b&1){ans=(ans*a)%m;b--;} b/=2; a=a*a%m; } return ans;}int main(){ long long p,a; while(scanf("%lld%lld",&p,&a),p|a) { if(isprime(p)){printf("no\n");continue;} long long mol=quick_mod(a,p,p); if(mol==a%p)printf("yes\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(Miller-Rabin素数测试)
- POJ 3641 Pseudoprime numbers(费马小定理,快速幂,数论)
- POJ 3641 Pseudoprime numbers(快速幂+素数)
- POJ 3641 Pseudoprime numbers【素数+快速幂】
- POJ -3641Pseudoprime numbers(快速幂+同余定理)
- POJ3641(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
- 拓胜六十二、六十三天(周末)
- iphone使用keychain来存取用户名和密码
- Java transient关键字
- tomcat内存溢出总结
- 设备驱动(六)
- POJ 3641 Pseudoprime numbers 测试费马小定理伪素数
- yum 安装php遇到php53-common conflicts with php-common
- jQuery Validation范例
- Hibernate中HQL占位符的一点使用技巧
- ListView改变字体颜色
- 解决JLINK v8 连接到电脑后显示无法识别的USB设备+个人最终解决经验
- keil中出现Undefined symbol FLASH_PrefetchBufferCmd (referred from main.o)等问题解决办法
- a.class与a .class的区别
- @synthesize obj=_obj的意义详解 @property和@synthesize