編輯:我剛剛意識到這個問題。 @tichodroma解決了這個問題,但是通過編輯OP帖子來解決問題。所以當我到達它時,它已經解決了,但是他通過將打印件放入循環中解決了這個問題,因此許多數字都是瀑布。但它應該在循環之外,以便僅顯示最終結果。同樣 - 在編輯之前查看OP代碼後,它的編寫方式需要很長時間才能運行,而「閃爍線」是系統在後臺工作。
def isprime(n):
'''check if integer n is a prime'''
# make sure n is a positive integer
n = abs(int(n))
# 0 and 1 are not primes
if n < 2:
return False
# 2 is the only even prime number
if n == 2:
return True
# all other even numbers are not primes
if not n & 1:
return False
# range starts with 3 and only needs to go up the squareroot of n
# for all odd numbers
for x in range(3, int(n**0.5)+1, 2):
if n % x == 0:
return False
return True
counter = 0
number = 0
while True:
if isprime(number):
counter+=1
if counter == 10000:
break
number+=1
print number
您確定您發佈了您使用的[* exact * code](http://ideone.com/s6FS0)? – jfs 2012-07-31 07:47:23
它適合我。你在使用IDLE嗎? – 2012-07-31 07:48:45
@Tichodroma:你的編輯改變了代碼的含義。我已經回滾了它。 – jfs 2012-07-31 08:12:15