2301_77186477 2023-03-31 01:33 采纳率: 100%
浏览 52
已结题

Python求质数问题

img


题目要求输入一个正整数n,在一行中输出前n个回文素数
排查下来感觉是质数部分出了问题
个人感觉是for i in range(2,n)这句有问题
但不知道怎么改

  • 写回答

4条回答 默认 最新

  • 阳光宅男xxb 2023-03-31 07:09
    关注

    你的错误主要是因为def定义的是函数,不能放在循环中,而是因为放在外面。代码修改如下,望采纳:

    import math
    
    
    def is_prime(n):
        if n < 2:
            return False
        for i in range(2, int(math.sqrt(n)) + 1):
            if n % i == 0:
                return False
        return True
    
    
    def palindrome(my_string):
        if len(my_string) == 1:
            return False
        else:
            if my_string == my_string[::-1]:
                return True
            else:
                return False
    
    
    a = int(input())
    
    n = 1
    while a > 0:
        if palindrome(str(n)) and is_prime(n):
            a = a - 1
            print(n, end=' ')
        n = n + 1
    
    
    

    运行结果:

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月4日
  • 已采纳回答 3月31日
  • 赞助了问题酬金15元 3月31日
  • 修改了问题 3月31日
  • 展开全部