這是我製作的主要發電機。我應該能夠產生最多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