对名单中的个别元素进行划分

时间:2016-01-21 19:47:19

标签: python math primes

我正在尝试编写一个找到素数的程序。

prime = [2]
for k in range(3,100)
    if k%prime != 0
        prime.append(k)
print(prime)

当我运行程序时,我收到错误:

TypeError: unsupported operand type(s) for %: 'int' and 'list'

我认为当我尝试按列表划分时会出现错误,但我不确定该怎么做。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您必须遍历整个主要列表,并确保模块中所有项的模数为非零

prime = [2]
for k in range(3,100):
    if all(k % p != 0 for p in prime):
        prime.append(k)

优化(一旦发现单个素数因素,不要检查额外的素数):

prime = [2]
for k in range(3,100):
    for p in prime:
        if k % p == 0:
            break
    else:
        prime.append(k)