1015 Reversible Primes

#include<bits/stdc++.h>
using namespace std;
bool isprime(int a){
	if(a<=1) return false;
	if(a==2) return true;
	for(int i=2;i<=sqrt(a);i++){
		if(a%i==0) return false;
	}
	return true;
}
int getnum(int a,int d){
	vector<int> ppp;
	while(a!=0){
		ppp.push_back(a%d);
		a/=d;
	}
	int ans=0;
	for(int i=0;i<ppp.size();i++){
		ans+=ppp[i]*pow(d,ppp.size()-i-1);
	}
	return ans;
}
int main()
{
	while(1){
		int n;cin>>n;
		if(n<0) break;
		else{
			int d;cin>>d;
			if(isprime(n)==false){
				cout<<"No"<<endl;
			}else{
				int temp;
				temp=getnum(n,d);
				if(isprime(temp)==true){
					cout<<"Yes"<<endl;
				}else{
					cout<<"No"<<endl;
				}
			}
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/csg3140100993/article/details/82053957
今日推荐