python大全1015python大全_PAT 甲级 1015——python讲解

题目大意:

数字N在D进制下是不是双重素数。双重素数是本身和倒数皆为素数的数。

实现:判断N是否为素数。如果不是,输出No,否则将该数在D进制下倒过来再化为十进制数,判断是否为素数。如果是,输出Yes,否则输出No.

做这道题目的时候我们需要注意以下两点:

1>内置函数int可以把字符串从指定的进制转换成十进制

2>在检验是否是整型的时候,要注意0和1,这两个直接返回否

import math

def check(num):

if num <= 1:

return 0

flag = 1

for x in range(2, round(math.sqrt(num))+1):

if num % x ==0:

flag = 0

return flag

return flag

def change(num, radix):

result = ''

while(num !=0):

temp = num % radix

result = str(temp) + result

num = num //radix

return result

if __name__ == "__main__":

while(True):

line = input().split(" ")

if len(line) < 2:

break

num = int(line[0])

radix = int(line[1])

if check(num) == 1:

rever = change(num, radix)

rever = rever[::-1]

rever = int(rever, radix)

if check(rever) == 1:

print("Yes")

else:

print("No")

else:

print("No")

标签:输出,PAT,进制,No,python,素数,num,1015,十进制

来源: https://blog.csdn.net/qq_51718832/article/details/113843191

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值