hdu1905 Pseudoprime numbers

来源:互联网 发布:nodejs获取windows ip 编辑:程序博客网 时间:2024/05/17 01:07
#include <stdio.h>int isPrime(int x){int i;if(x==2)return 1;if(x%2==0)return 0;for(i=3;i*i<=x;i+=2)if(x%i==0)return 0;return 1;}long long func(long long a,int p){ // 计算n的p次方  long long k=1;int mod=p;while(p>=1){if(p&1) // 判断p是否奇数,偶数的最低位必为0k=k*a%mod;a=a*a%mod;p>>=1;}return k;}int main(){int a,p;long long res;while(scanf("%d %d",&p,&a)){if(p==0||a==0)break;res=func(a,p);if((res==a%p)&&!isPrime(p))printf("yes\n");elseprintf("no\n");}return 0;}

原创粉丝点击