查找从10到10000的所有素数

时间:2017-09-21 03:21:06

标签: python

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的所有素数,然后将它们附加到前几个素数的给定数组中。当我多次测试时,我的代码工作得更早了。现在它抛出了一个错误“列表索引超出范围”。不知道我在正确的轨道上有什么不对。

1 个答案:

答案 0 :(得分:0)

我认为你应该从这样的事情开始

您需要迭代所有素数,然后才能追加到列表中。否则,您将始终在奇数上打破该循环(您使用2修改)

primes = [2,3,5,7]
for n in range(10, 10000):
    isPrime = True
    for d in primes:
        if n % d == 0:
            isPrime = False
            break 
    if isPrime:
        primes.append(n)
print(primes)