#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#define maxn 0x7fffffff
using namespace std;
typedef long long ll;
bool isprime(ll k){
int flag=0;
if(k==2||k==1) return 1;
for(ll i=2;i<=sqrt(1.0*k)+1;i++){
if(k%i==0){
return 0;}
}
return 1;
}
ll quick_mod(ll a,ll b,ll m){
ll ans=1;
while(b){
if(b&1){
ans=ans*a%m;
}
b>>=1;
a=a*a%m;
}
return ans;
}
int main()
{
ll p,a;
while(scanf("%lld%lld",&p,&a)!=EOF&&(p+a)){
if(isprime(p)) printf("no\n");
else{
ll ans=1;
ans=quick_mod(a,p,p);
if(ans==a)
printf("yes\n");
else
printf("no\n");
}
}
return 0;
}
POJ 3641 (伪素数)
最新推荐文章于 2021-05-24 19:46:30 发布