#include <stdio.h>
#include <math.h>
using namespace std;
int reverse(int a,int radix)
{
if(a==0)return a;
int b[110],len=0;
while(a>0)
{
b[len++]=a%radix;
a/=radix;
}
int result=0;
for(int i=0;i<len;i++)
{
result=result*radix+b[i];
}
return result;
}
bool isprime(int x)
{
if(x==0||x==1)return false;
if(x==2)return true;
for(int i=2;i<=sqrt(x*1.0)+1;i++)
{
if(x%i==0)return false;
}
return true;
}
int main()
{
int a,radix;
while(scanf("%d",&a)!=EOF)
{
if(a<0)break;
scanf("%d",&radix);
int b=reverse(a,radix);
if(isprime(a)&&isprime(b))
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
}
PAT甲1015 Reversible Primes (20)(20 分)
最新推荐文章于 2024-06-08 10:35:18 发布