【发布时间】:2017-09-21 03:21:06
【问题描述】:
primes = [2,3,5,7]
for n in range(10, 10000):
isPrime = True
for d in primes:
if (n % d) == 0:
isPrime = False
else:
primes.append(n)
break
print(primes[n])
我必须打印从 10 到 10000 的所有素数,然后将它们附加到给定的前几个素数数组中。我的代码在我多次测试时工作得更早。现在它给我一个错误“列表索引超出范围”。不知道有什么问题以为我走在正确的轨道上。
【问题讨论】:
-
删除
[n]。顺便说一句:测试高达 100 的因子就足够了。 -
顺便说一句,我知道 10,000 不是素数,所以你实际上不需要这样做,但从技术上讲你应该这样做
for n in range(10, 10001): -
我尝试只打印 (n) 或删除 [n]。没有工作,如果我删除 [n],它会打印从 2 到 10000 的所有数字,只是增加 2(ei.[2,3,5,7,9,11,13,15]
-
您将少于 9990 个值附加到您的列表并尝试访问位置 10000
标签: python