首页 > 解决方案 > 使用嵌套循环在列表中查找素数

问题描述

编程新手。我有下面的一段代码,我一直在试图弄清楚如何打印给定列表中的素数列表(赔率)。请帮助前进。

divisible = 0
dividers = []
odds = [1, 3, 5, 7, 9, 11, 13, 15, 17] #list to check for primes

for divider in range(2, dividers):
    for i in odds:
         if i % divider == 0:
           dividers.append(divider)
           divisible += 1

divisible == 0:
    print(odds)

标签: pythoniterationnested-loops

解决方案


for divider in range(2, dividers):此表达式无效。的类型dividers不是。你想用这些代码做什么?listint

如果您试图找出给定列表中的哪些数字是素数,您应该如下更改您的代码:

is_prime = lambda x: False if x < 2 else all(x % i != 0 for i in range(2, x))

random_numbers = [11, 18, 19, 22, 6, 3, 8]

prime_numbers = [i for i in random_numbers if is_prime(i)]

print(prime_numbers)

我们应该得到如下输出:

[11, 19, 3]

推荐阅读