#include <iostream>
#include <math.h>
#include <vector>
using namespace std;
int judge(int n)
{
if(n <= 1)
{
return 0;
}
int r = sqrt(n * 1.0), i;
for(i = 2; i <= r; i++)
{
if(n % i == 0)
{
return 0;
}
}
return 1;
}
int main()
{
int n, radix, size, i, num;
vector<int> v;
while(scanf("%d", &n) == 1)
{
if(n < 0)
{
break;
}
scanf("%d", &radix);
if(judge(n) == 0)
{
printf("No\n");
}
else
{
if(n == 0)
{
printf("No\n");
}
else
{
v.clear();
while(n > 0)
{
v.push_back(n % radix);
n /= radix;
}
size = v.size();
num = 0;
for(i = 0; i < size; i++)
{
num = num * radix + v[i];
}
if(judge(num) == 0)
{
printf("No\n");
}
else
{
printf("Yes\n");
}
}
}
}
system("pause");
return 0;
}