题目

题意:给定一个十进制数以及进制数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;
}