首页 > 解决方案 > 关于loopinbg的问题 - 试图从列表中找到一个素数

问题描述

我得到了一个数字列表并使用 python,我需要在列表中找到素数并将它们打印出来

我已经尝试了几种不同的方法,但无法让它发挥作用。我最近的尝试如下,但它只返回所有数字,并显示除了最后一个之外它是质数的消息。

    odd_numbers = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29] 
    x = 0
    y = len(odd_numbers) - 1  

    # If given number is greater than 1 
    #if odd_numbers[x] > 2: 

    # Iterate from 2 to n / 2  
    for i in range(0, y):  
        # If num is divisible by any number between  
        # 2 and n / 2, it is not prime  
        if (odd_numbers[x] % 2) == 0: 
            break

        else: 
            pr_no =  odd_numbers[x]
            print(odd_numbers[x], "is a prime number") 
            x = x + 1

    else: 
       print(odd_numbers[x], "is not a prime number")

它应该做的是打印出:

2 是一个素数 3 是一个素数等列表中的所有素数

标签: python-3.x

解决方案


odd_numbers = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29]

for x in odd_numbers:
    if x > 1:
        for y in range(2,x):
            if (x % y) == 0:
#               print(x,"is not a prime number")
#               print(y,"times",x//y,"is",x)
               break
        else:
            print(y,"is a prime number")
#    else:
#        print(x, "is not a prime number")

推荐阅读