PAT.A1015 Reversible Primes

返回目录在这里插入图片描述

题意

给出整数n和radix,如果n是素数,且n在radix进制下反转后的数在十进制下也是素数,则输出“Yes"; 否则输出“No”。

样例(可复制)

73 10
23 2
23 10
-2
//output
Yes
Yes
No

注意点

  1. 注意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;
}
发布了137 篇原创文章 · 获赞 4 · 访问量 6035

猜你喜欢

转载自blog.csdn.net/a1920993165/article/details/105382602
今日推荐