//素数判断刚开始没写全,少了个2的情况....
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
bool isPrime(int a){
int end = sqrt(a);
if(a == 2){
return true;
}
if(a == 1 || a%2 == 0)
return false;
for(int i=3; i<=end; i+=2){
if(a%i == 0){
return false;
}
}return true;
}
int Reverse(int a, int r){
int res = 0;
while(a){
res *= r;
res += (a%r);
a /= r;
}
return res;
}
int main()
{
int a, b;
while(1){
cin >> a;
if(a <0)
return 0;
cin >> b;
if(!isPrime(a)){
cout << "No" << endl;
continue;
}
int res = Reverse( a, b);
// cout << res << endl;
if(!isPrime(res)){
cout << "No" << endl;
continue;
}else cout << "Yes" << endl;
}
return 0;
}