注意判定素数时考虑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; }