sicily 1454. Pseudoprime numbers
2011-07-05 02:00
357 查看
#include<iostream> #include<stdio.h> #include<cmath> using namespace std; int is_prime(int x) { int m=floor(sqrt((double)x)+0.5); for(int i=2;i<=m;++i) if(x%i==0) return 0; return 1; } int power(int a,int b,int m) //快速幂取模计算 (a^b)%m { if(a==0) return 0; else if(b==0) return 1; long long r=a%m,k=1; while(b>1) { if((b&1)==1) k=(k*r)%m; r=(r*r)%m; b=b>>1; } return (r*k)%m; } int main() { int p,a; while(scanf("%d%d",&p,&a) && p ) { if( !is_prime(p) && power(a,p,p)==a ) printf("yes\n"); else printf("no\n"); } return 0; }
相关文章推荐
- POJ 3641 Pseudoprime numbers
- HDU 1905 Pseudoprime numbers
- 【 POJ 3641 】Pseudoprime numbers
- POJ3641-Pseudoprime numbers(快速幂取模)
- hdu 1905 Pseudoprime numbers
- POJ 3641 Pseudoprime numbers (快速幂)
- hdoj 1905 Pseudoprime numbers
- POJ Pseudoprime numbers (判断素数+快速幂取模)
- Poj - 3641 - Pseudoprime numbers-(快速幂)
- 【POJ】-3641-Pseudoprime numbers(快速幂,大数素数判定)
- poj-3641-Pseudoprime numbers【快速幂】
- HDU 1905 Pseudoprime numbers
- POJ-3641 Pseudoprime numbers
- hdu1905 Pseudoprime numbers (快速幂+素数筛法)
- Pseudoprime numbers(POJ 3641 快速幂)
- 3月2日 Pseudoprime numbers(费马素性测试、卡米歇尔数、伪素数)
- 求余小技巧 码农场 » POJ 3641 Pseudoprime numbers 题解 《挑战程序设计竞赛》
- hdu 1905 Pseudoprime numbers
- POJ 3641 Pseudoprime numbers
- POJ 3641 Pseudoprime numbers (快速幂)