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乙级1015 德才论(C加c++)


下一篇:限定pan手势只能在圆内移动view