再次运行循环

时间:2014-03-09 15:08:18

标签: python loops for-loop primes

我试图在最后一次迭代时重新运行python中的循环,但它不起作用。这是我的代码:

primes = [i for i in range(2, 1001)]
p = 2
for i in range(p, len(primes), p):
    primes[i] = 0
    if i == len(primes)-1 and (p+1) <= max(primes):
        p += 1
        print(p)
print(primes)

代码只运行一次,因为print(primes)显示每个第二个值都为0.我希望它重新运行,直到p不等于列表中的最大值。

1 个答案:

答案 0 :(得分:2)

primes = [2, 3]
upto = 1000
for num in range(4, upto+1):
    if all(num % p for p in primes):
        primes.append(num)

print(primes)

请注意,通过不测试按素数划分&gt;仍然可以改善这一点。 SQRT(NUM)