擅长:python、mysql、java
<p>这应该起作用:</p>
<pre><code>def primenumber():
primelist = [1, 2]
candidate = 3
while len(primelist) < 1000:
isCandidatePrime = True
if (candidate % 2 == 0): # if candidate is even, not a prime
isCandidatePrime = False
else:
for i in range(3, (candidate+1)/2, 2): # else check odds up to 1/2 candidate
if (candidate % i == 0): # if i divides it, not a prime
isCandidatePrime = False
break
if (isCandidatePrime):
primelist.append(candidate)
candidate += 1
print primelist
</code></pre>
<p>我认为有几个改进(只检查小于或等于候选数平方根的数字,只检查素数,而不是所有小于候选数平方根的数字),但我暂时不谈这些。你知道吗</p>