#include<iostream>
#include<math.h>
#include<algorithm>
#include<string.h>
using namespace std;
int change(int n,int radix)
{
int len=0,d[40];
do{
d[len++]=n%radix;
n/=radix;
}while(n!=0);
for(int i=0;i<len;i++) n=n*radix+d[i];
return n;
}
bool IsPrime(int n)
{
if(n<=1) return false;
int sqr=sqrt(1.0*n);
for(int i=2;i<=sqr;i++){
if(n%i==0) return false;
}
return true;
}
int main()
{
int n,rever,radix;
scanf("%d",&n);
while(n>0){
scanf("%d",&radix);
rever=change(n,radix);
if(IsPrime(n)&&IsPrime(rever)) printf("Yes\n");
else printf("No\n");
scanf("%d",&n);
}
return 0;
}
PAT A 1015 Reversible Primes
最新推荐文章于 2020-04-29 15:10:08 发布