#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
typedef long long int ll;//好吧,这次是因为没有使用long long。。。。
ll mod_pow(ll x, ll n, ll mod)
{
ll res = 1;
while (n > 0) {
if (n&1)
res = res*x%mod;
x = x*x % mod;
n>>=1;
}
return res;
}
bool is_prime(ll k)
{
if (k == 1)
return false;
if (k == 2)
return true;
for (ll i = 2; i*i <= k; i++)
{
if (k%i == 0)
return false;
}
return true;
}
int main()
{
ll a, p;
while (cin>>p>>a, a|p) {
if (is_prime(p))
cout<<"no"<<endl;
else if (mod_pow(a, p, p) == a)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
}
poj 3641 Pseudoprime numbers
最新推荐文章于 2022-01-15 15:18:59 发布