#include<cstdio>
#include<cmath>
bool isprime(int n)
{
if (n <= 1) return false;
int sqr = (int)sqrt(1.0*n);
for (int i = 2; i <= sqr; i++)
{
if (n%i == 0) return false;
}
return true;
}
int d[110];
//题意其实是,给定的十进制数,以及该十进制数在给定进制下的反转都为质数则该数符合
int main()
{
int n, radix;
while (scanf("%d", &n) != EOF)
{
if (n < 0) break;
scanf("%d", &radix);
if (!isprime(n)) printf("No\n");
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)) printf("Yes\n");
else printf("No\n");
}
}
return 0;
}
自己做的时候没有理解题意