返回目录![在这里插入图片描述](https://img-blog.csdnimg.cn/2020040811161626.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ExOTIwOTkzMTY1,size_16,color_FFFFFF,t_70)
题意
给出整数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;
}