这是我的素数查找算法——它工作得很好(而且非常快),直到限制设置在 173 以上,然后它开始抛出
ValueError: list.remove(x): x not in list
我不明白为什么在限制为 174 或更高之前它工作得非常好——这是我的代码。
def primefinder(limit):
primes = [2, 3]
for i in range(1, (limit / 6 + 1)):
primes.append(6 * i - 1)
primes.append(6 * i + 1)
for i in primes[:]:
if i > 24:
for x in primes:
if x <= i ** 0.5:
if i % x == 0:
primes.remove(i)
continue
else:
break
if limit % 6 == 0:
primes.remove(primes[-1])
return primes