AC代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
bool judge( long long x ){
for( int i = 2; i < sqrt( (double)x ); i++ ){
if( x % i == 0 ){
return false;
}
}
return true;
}
long long MOD( long long a, long long p, long long m ){
if( p == 0 ){
return 1 % m;
}
if( p == 1 ){
return a % m;
}
long long t = MOD( a, p / 2, m ) % m;
t = t * t % m;
if( p % 2 ){
t = t * a % m;
}
return t;
}
int main(){
long long a, p;
while( cin >> p >> a && !( p == 0 && a == 0 ) ){
if( judge( p ) ){
cout << "no" << endl;
continue;
}
if( MOD( a, p, p ) != a ){
cout << "no" << endl;
}else{
cout << "yes" << endl;
}
}
return 0;
}