题意:给定一个十进制数以及进制数radix,问在该进制下的数所对应的的十进制和逆数是否都为素数。
tip:暴力破解、字符串逆转
#include<iostream>
#include<cmath>
#include<string>
#include<algorithm>
using namespace std;
int radix;
bool isPrime(string ans) {
long long temp=0;
for(auto i : ans)
temp=temp*radix+i-'0';
if(temp<2)
return false;
long long i;
for(i=2; i<(int)sqrt(temp)+1; ++i) {
if(temp%i==0)
return false;
}
return true;
}
int main() {
long long n;
cin>>n;
while(n>0) {
cin>>radix;
string rev="";
while(n) {
rev=to_string(n%radix)+rev;
n/=radix;
}
if(!isPrime(rev))
cout<<"No\n";
else {
reverse(rev.begin(),rev.end());
if(!isPrime(rev))
cout<<"No\n";
else cout<<"Yes\n";
}
cin>>n;
}
return 0;
}