#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <cmath>
using namespace std;
int n, radix;
int reverse(int m)
{
int t[10], cnt = 0, a = 0;
while (m)
{
t[cnt++] = m%radix;
m /= radix;
}
for (int i = cnt-1; i >= 0; i--)
{
int p = pow(radix, cnt-1-i)+0.5;
a += t[i]*p;
}
return a;
}
int isPrime(int n)
{
if (n <= 1)
return 0;
else
{
int sqr = sqrt(1.0*n);
for (int i = 2; i <= sqr; i++)
{
if (n%i == 0)
return 0;
}
return 1;
}
}
int main()
{
//freopen("in.txt", "r", stdin);
//freopen("out.txt", "w", stdout);
while (scanf("%d %d", &n, &radix) != EOF && n > 0)
{
int r = 0;
if (isPrime(n))
{
r = reverse(n);
if (isPrime(r))
printf("Yes\n");
else
printf("No\n");
}
else
printf("No\n");
}
return 0;
}
PAT-A1015. Reversible Primes (20)
最新推荐文章于 2020-01-15 19:59:34 发布