我试图在最后一次迭代时重新运行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不等于列表中的最大值。
答案 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)