PAT 1015 Reversible Primes python解法

该博客介绍了如何解决 PAT 1015 题目,即判断一个数在指定进制下是否为可逆素数。博主提供了两种辅助函数,一个用于检测素数,另一个用于在给定进制下反转数字并转换回十进制。通过示例输入和输出展示了程序的正确性,解题思路包括素数判断和数字反转的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1015 Reversible Primes (20 分)
A 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 (<10​5​) 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

题意:给出来两个数n和b,如果n是一个素数,并且在b进制下反转之后还是一个素数,那这个数n就是一个可逆素数,输出Yes,否则输出No。

解题思路:
1.构造2个函数,isprime(n)用来判断n是否为素数,reverse(n, b)用来将n在b进制下反转并转回十进制。
2.判断素数的方法参考PAT 1152 Google Recruitment python解法
3.reverse(n, b)中就是正常的除和取余获得n的b进制数,反转之后再乘起来变成十进制。
4.最后注意此题的循环结束条件是输入负数时结束循环,没有在最开始给出输入几行数据。

import math
def isprime(n):
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

D_ry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值