d进制下的逆转质数 需要求出逆转后d进制下的值 想了好久
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
int n;
bool isprime(int n)
{
int sqr = (int)sqrt(n * 1.0);
if(n == 1) return false;
for(int i = 2; i <= sqr; i++)
{
if(n % i == 0) return false;
}
return true;
}
int main()
{
int d;
while(scanf("%d",&n) != 'EOF')
{
int a[40];
int num = 0;
if(n < 0) break;
scanf("%d",&d);
if(!isprime(n)){
printf("No\n");
}
else
{
do{
a[num++] = n % d;
n /= d;
}while(n != 0);
int s = 0;
for(int i = 0; i < num; i++)
{
s = s * d + a[i];
}
if(isprime(s)) printf("Yes\n");
else printf("No\n");
}
}
return 0;
}