1015. Reversible Primes (20)

题目链接:http://www.patest.cn/contests/pat-a-practise/1015

题目:



时间限制
400 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue

reversible prime in any number system is a prime whose "reverse" in that number system is also a prime. For example in the decimal system 73 is a reversible prime because its reverse 37 is also a prime.

Now given any two positive integers N (< 105) and D (1 < D <= 10), you are supposed to tell if N is a reversible prime with radix D.

Input Specification:

The input file consists of several test cases. Each case occupies a line which contains two integers N and D. The input is finished by a negative N.

Output Specification:

For each test case, print in one line "Yes" if N is a reversible prime with radix D, or "No" if not.

Sample Input:
73 10
23 2
23 10
-2
Sample Output:
Yes
Yes
No

分析:

判断是否是质数,以及加上数制转换。

这里的是指原数字与它在数制下的倒叙,如23 2,是10111(2)的倒叙11101的真实数字。判断原数与倒叙数字是否都是质数判别。


案例分析:

73 10,73是质数,10进制下的倒叙数是37,也是质数,Yes

23 2, 23是质数,2进制下表示为10111,倒叙数是11101,转换为10进制为29,也是质数,Yes

23 10,23是质数,10进制下的倒叙数是32,不是质数,No


AC代码:

#include<stdio.h>
using namespace std;
bool isPrime(int num1){//判断是否是质数
 if(num1 < 2) return false;
 if(num1 == 2 || num1 == 3)return true;
 for(int i = 2; i * i <= num1; i ++){
  if(num1 % i == 0)return false;
 }
 return true;
}
int rev_num(int num1,int radix){//判断基数radix下的倒叙数(还是转换为10进制的)
 int num2 = 0;
 while(num1){
  num2 *= radix;
  num2 += num1 % radix;
  num1 /= radix;
 }
 return num2;
}
int main(void){
 int n,d;
 while(scanf("%d",&n) != EOF){
  if(n < 0) break;//输出是以复数作为结束的
  scanf("%d",&d);
  int n_rev;
  n_rev = rev_num(n,d);
  if(isPrime(n) == true && isPrime(n_rev) == true)      //如果原数和倒叙数都是质数
   puts("Yes");
  else
   puts("No");
 }
 return 0;
}


——Apie陈小旭


时间限制
400 ms
内存限制
65536 kB
代码长度限制
16000 B
判题程序
Standard
作者
CHEN, Yue

reversible prime in any number system is a prime whose "reverse" in that number system is also a prime. For example in the decimal system 73 is a reversible prime because its reverse 37 is also a prime.

Now given any two positive integers N (< 105) and D (1 < D <= 10), you are supposed to tell if N is a reversible prime with radix D.

Input Specification:

The input file consists of several test cases. Each case occupies a line which contains two integers N and D. The input is finished by a negative N.

Output Specification:

For each test case, print in one line "Yes" if N is a reversible prime with radix D, or "No" if not.

Sample Input:
73 10
23 2
23 10
-2
Sample Output:
Yes
Yes
No
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值