![在这里插入图片描述](https://img-blog.csdnimg.cn/20200716095110675.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Jid3FzYg==,size_16,color_FFFFFF,t_70)
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
bool isprime(int n) {
if (n <= 1) return false;
int sqr = sqrt(n);
for (int i = 2; i <= sqr; i++) {
if (n % i == 0)
return false;
}
return true;
}
int d[100];
int main()
{
int n, radix;
while (1)
{
cin >> n;
if (n < 0) break;
cin >> radix;
if (isprime(n) == false)
cout << "No" << endl;
else
{
int len = 0;
do {
d[len++] = n % radix;
n /= radix;
} while (n != 0);
for (int i = 0; i < len; i++)
{
n = n * radix + d[i];
}
if (isprime(n))
cout << "Yes" << endl;
else
cout << "No" << endl;
}
}
}