PO3641 Pseudoprime numbers判伪素数与快速幂
来源:互联网 发布:python 开发环境 编辑:程序博客网 时间:2024/06/05 16:53
#include<stdio.h>#include<string.h>#define maxn 100001int prime[maxn],save[maxn],tot;bool pan(int a,int p){if(p<maxn)//直接判素{if(!prime[p])return false;}else{int ok=1;for(int i=1;save[i]*save[i]<=p;i++)//利用素数表判素if(p%save[i]==0){ok=0;break;}if(ok)return false;}int s=1;int mod=p,b=a;while(p)//快速幂{if(p&1){s=(long long)s*(long long)a%(long long)mod;}a=(long long)a*(long long)a%(long long)mod;p>>=1;}if(s%mod==b)return true;else return false;}void init()//建立素数表{tot=1;for(int i=2;i<maxn;i++)if(!prime[i]){save[tot++]=i;for(int j=i+i;j<maxn;j+=i)prime[j]=1;}}int main(){int p,a;init();while(~scanf("%d%d",&p,&a)&&p){if(pan(a,p))printf("yes\n");elseprintf("no\n");}return 0;}
0 0
- PO3641 Pseudoprime numbers判伪素数与快速幂
- 【hdu】 Pseudoprime numbers 伪素数(快速幂+判定素数)
- POJ 3641 Pseudoprime numbers (伪素数_快速幂)
- POJ 3641 Pseudoprime numbers(快速幂+素数)
- POJ 3641 Pseudoprime numbers【素数+快速幂】
- 快速幂+素数 HDU 1905 Pseudoprime numbers
- HDU 1905 Pseudoprime numbers【素数】【快速幂】
- POJ 3641 Pseudoprime numbers 伪素数测试
- POJ 3641 Pseudoprime numbers(伪素数)
- Pseudoprime numbers poj3641(快速幂+素数判定)
- poj 3641 Pseudoprime numbers 快速幂+素数判定 模板题
- hdu1905 Pseudoprime numbers (快速幂+素数筛法)
- POJ - 3641 Pseudoprime numbers <快速幂加素数判定>
- 【POJ】-3641-Pseudoprime numbers(快速幂,大数素数判定)
- POJ 3641 Pseudoprime numbers(快速幂,素数)
- POJ3641 UVA11287 HDU1905 Pseudoprime numbers【素数判定+快速模幂】
- PKU 3641 Pseudoprime numbers 快速模取幂 素数
- POJ3641 Pseudoprime numbers 快速幂
- AFNetworking速成教程(2)
- 每天进步一点点
- 容器常用
- 实现Android 动态加载APK(Fragment or Activity实现)
- [企管怪谈]企业怎么留住领导?
- PO3641 Pseudoprime numbers判伪素数与快速幂
- android switch语句case expressions must be constant expressions
- Servlet 3.0新特性总结
- openwrt(一) 下载源码编译
- sqlite第三方类库:FMDB使用(转载)
- Part1:C++引用类型
- Android照片墙完整版,完美结合LruCache和DiskLruCache
- 浅谈MD5加密算法中的加盐值(SALT)
- 一个动态调用webservices的类分享给大家 含有 soapheader