题目
思路
题目大意:判断一个数以及逆序是不是质数;
注意:0和1都不是质数,记得特判一下;
代码
#include <iostream>
#include <string>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
int d[50];
bool isPrime(int a){
if(a <= 1) return false;//注意1不是质数
for(int i = 2; i * i <= a; i ++){
if(a % i == 0) return false;
}
return true;
}
int main()
{
int n, D, i;
scanf("%d", &n);
while(n > 0){
scanf("%d", &D);
int b = 0, a = n;
i = 0;
while(n > 0){
d[i ++] = n % D;
n = n / D;
}
//正着遍历相当于逆序转化为十进制
for(int j = 0; j < i; j ++) b = b * D + d[j];
if(isPrime(a) && isPrime(b)) printf("Yes\n");
else printf("No\n");
scanf("%d", &n);
}
system("pause");
return 0;
}