注意判定素数时考虑0,1,2,3几种情况
// 1015. Reversible Primes.cpp: 主项目文件。
#include "stdafx.h"
#include <cstdio>
#include <math.h>
bool isPrime(int num){
if(num==0||num==1)
return false;
if(num==2||num==3)
return true;
for(int i=2;i<=(int)sqrt(1.0*num);i++){
if(num%i==0)
return false;
}
return true;
}
int main()
{
int N,D;
while(~scanf("%d",&N)&&N>=0){
scanf("%d",&D);
if(N==0||N==1){
puts("No");
continue;
}
bool tag=isPrime(N);
if(!tag){
puts("No");
continue;
}
int aa[32],cnt=0;
while(N){
aa[cnt++]=N%D;
N/=D;
}
int reverse=0;
for(int i=0;i<cnt;i++)
reverse=reverse*D+aa[i];
tag=isPrime(reverse);
if(!tag)
puts("No");
else
puts("Yes");
}
return 0;
}