Sicily/1454. Pseudoprime numbers
2011-07-30 23:25 Min·zc 阅读(192) 评论(0) 编辑 收藏 举报快速幂取模和素性检测
#include <iostream>
using namespace std;
int prime(long long n)
{
if(n==1)
return 1;
for(int i=2;i*i<=n;i++)
if(n%i==0)
return 1;
return 0;
}
long long mod(long long a,long long b,long long k)
{
long long tem=a;
long long ret=1;
while(b)
{
if(b&1)
ret=ret*tem%k;
tem=tem*tem%k;
b>>=1;
}
return ret;
}
int main()
{
long long a,b;
while(cin>>a>>b&&a!=0&&b!=0)
{
int ans=prime(a);
long long t=mod(b,a,a);
if(t!=b||ans==0)
cout<<"no"<<endl;
else
cout<<"yes"<<endl;
}
}