标签:
#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;
int D[111]; //存放拆解的数字
int DI=0; //D的数组下标
bool isPrime(int n)
{
if(n<=1)
return 0;
int sqr=(int)sqrt(1.0*n);
for(int i=2 ; i<sqr+1 ; ++i)
if(0==n%i)
return 0;
return 1;
}
int main()
{
int n,d;
while(scanf("%d",&n)!=EOF)
{
if(n<0) //循环退出的条件
break;
scanf("%d",&d);
if(isPrime(n)==1) //输入数字是素数
{
DI=0;
do //【skill】do……while法。转为d进制
{
D[DI++]=n%d;
n/=d;
}while(n!=0);
int n2=0;
for(int i=0 ; i<DI ; ++i) //生成n逆序的d进制数n2
{
n2=n2*d+D[i]; //【warining】n2=千万不要习惯性写成n2+=!!!!!
}
if(isPrime(n2)==1) //也是素数,则Yes
{
printf("Yes\n");
continue;
}
}
printf("No\n"); //转变数不是素数或者输入就不是素数,直接No
}
return 0;
}
PAT:1015. Reversible Primes (20) AC
标签:
原文地址:http://www.cnblogs.com/Evence/p/4317805.html