PAT Advanced 1015 【Reversible Primes】 (20)

分析:唯一的坑点就在于是先判断输入的数是否素数,然后再判断在D进制下反转后的数是否素数

代码:

#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int isPrime(int num){
	if(num < 2) return 0;
	for(int i = 2; i<=sqrt(num); i++)
		if(num % i == 0) return 0;
	return 1;
}

int solve(int num, int radix){
	if(!isPrime(num)) return 0;
	int num2 = 0;
	while(num){
		num2 = num2*radix + num%radix;
		num /= radix;
	}
	return isPrime(num2);
}
int main(){
	//freopen("aa.txt", "r", stdin);
	int num, radix;
	while(cin >> num){
		if(num < 0) break;
		cin >> radix;
		solve(num, radix) ? cout << "Yes\n" : cout << "No\n"; 
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/gq__97/article/details/81561060
今日推荐