分析:唯一的坑点就在于是先判断输入的数是否素数,然后再判断在D进制下反转后的数是否素数
代码:
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int isPrime(int num){
if(num < 2) return 0;
for(int i = 2; i<=sqrt(num); i++)
if(num % i == 0) return 0;
return 1;
}
int solve(int num, int radix){
if(!isPrime(num)) return 0;
int num2 = 0;
while(num){
num2 = num2*radix + num%radix;
num /= radix;
}
return isPrime(num2);
}
int main(){
//freopen("aa.txt", "r", stdin);
int num, radix;
while(cin >> num){
if(num < 0) break;
cin >> radix;
solve(num, radix) ? cout << "Yes\n" : cout << "No\n";
}
return 0;
}