返回目录
题意
给出整数n和radix,如果n是素数,且n在radix进制下反转后的数在十进制下也是素数,则输出“Yes"; 否则输出“No”。
样例(可复制)
73 10
23 2
23 10
-2
//output
Yes
Yes
No
注意点
- 注意n=1的情况
#include<bits/stdc++.h>
using namespace std;
bool isprime(int a){
if(a<=1)return false;
int sqr=(int)sqrt(1.0*a);
for(int i=2;i<=sqr;i++)
if(a%i==0)return false;
return true;
}
int main(){
int n,radix;
bool flag1,flag2;
while(true){
cin>>n;
if(n<0)break;
cin>>radix;
flag1=isprime(n);
int num[1000],i=0;
do{
num[i++]=n%radix;
n/=radix;
}while(n>0);
for(int j=0;j<i;j++){
n=n*radix+num[j];
}
flag2=isprime(n);
if(flag1&&flag2)cout<<"Yes\n";
else cout<<"No\n";
}
return 0;
}