题目链接:Pat1015
这个题目的意思主要是输入一个数n,d代表这个数要变成几进制,然后让你求这个数变成d进制之后的反转之后的数是不是素数,读懂题目意思即会做,水题。可以看代码
#include<iostream>
using namespace std;
int reverse(int n,int d){
int sum=0;
while(n>0){
int y=n%d;
n=n/d;
if(n==0)
sum=sum+y;
else sum=sum*d+y*d;
}
return sum;
}
int Isprime(int r){
int i;
for( i=2;i<r;i++){
if(r%i==0)
break;
}
//特例1,要注意
if(r==1)
return 2;
if(i>=r)
return 6;
else
return 2;
}
int main(){
int n,d;
while(cin>>n>>d&&n>0){
if(Isprime(n)==6){
int r=reverse(n,d);
if(Isprime(r)==6)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
else
cout<<"No"<<endl;
}
return 0;
}