hechentonggnuang
2021-05-03 10:33
采纳率: 92.3%
浏览 145

python 求可逆素数 新人做题求大佬

7-1 可逆素数 (30 分)

输入两个正整数m和n,且m<n,求[m,n]之间的可逆素数列表。可逆素数:素数的各位数字顺序颠倒后得到的数仍是素数

输入格式:

分行输入m和n

输出格式:

输出可逆素数列表

输入样例1:

50
100

输出样例1:

[71, 73, 79, 97]

输入样例2:

200
300

输出样例1:

no exit
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • RRRR君 2021-05-03 11:06
    已采纳

    先写一个函数来判断回文数,这个两种思路,通用的思路是取余然后再相加判断相等,python可以取巧直接转换成字符串然后判断s[]==s[::-1],然后再写一个判断是否为质数的函数,这个最简单的思路就是写个循环判断有无因数

    已采纳该答案
    打赏 评论
  • allway2 2021-05-03 15:59
    from typing import *
    
    
    class Solution:
    
        def primeReverse(self, m: int, n: int) -> List[int]:
            def is_prime(x):
                return x > 1 and all(x % d for d in range(2, int(x ** .5) + 1))
    
            def reverse(x):
                rev = 0
                while (x > 0):
                    digit = x % 10
                    rev = (rev * 10) + digit
                    x = x // 10
                return rev
    
            out = []
            for num in range(m, n + 1):
                if is_prime(num) and is_prime(reverse(num)):
                    out.append(num)
            return out
    
    
    def main():
        ret = Solution().primeReverse(50, 100)
        print(ret)
    
    
    if __name__ == '__main__':
        main()
    
    1 打赏 评论