这是我制作的主要发电机。我应该能够产生最多20000的素数。它应该生成提供给它的素数作为参数。但是,它只能达到11并停止D :.任何人都可以解释这里有什么问题?为什么我的素数发生器发生故障?
def find_primes(limit):
prime_holder = [2, 3, 5 ,7]
divided_pass = 0
for i in range(11, 20000):
for j in range(0, len(prime_holder)):
if i%prime_holder[j] != 0:
divided_pass += 1
if divided_pass == len(prime_holder):
prime_holder.append(i)
divided_pass = 0
if len(prime_holder)-1 == limit:
break
return prime_holder
my_primes = find_primes(50)
for x in my_primes:
print x;
raw_input()
如果在该范围内产生的所有质数,你应该使用[埃拉托色尼的筛(HTTP:/ /en.wikipedia.org/wiki/Sieve_of_Eratosthenes)。 –
我制作了基于SoE的脚本。但是这个剧本是我第一个创作的剧本。这不起作用,我不明白为什么。 – Stormboy