2012-07-31 26 views
0

最近,我開始使用Python瞎搞,我寫了一個程序,打印出的第1000個素數,但輸出僅顯示閃爍的光標,代碼如下所示:Python的輸出只顯示閃爍的光標

number = 3 
count= 1 

while count <= 1000: 
      prime = True 
      for x in range(2, number): 
      if number % x == 0: 
       prime= False 
      if prime == True: 
       count = count + 1 
      if count <= 1000: 
       number = number + 1 

print number 

任何幫助和簡明的解釋,將不勝感激

+0

您確定您發佈了您使用的[* exact * code](http://ideone.com/s6FS0)? – jfs 2012-07-31 07:47:23

+0

它適合我。你在使用IDLE嗎? – 2012-07-31 07:48:45

+1

@Tichodroma:你的編輯改變了代碼的含義。我已經回滾了它。 – jfs 2012-07-31 08:12:15

回答

1

編輯:我剛剛意識到這個問題。 @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 
+0

結果是104729 – 2012-07-31 07:48:34

+0

「isprime」代碼來自「http://www.daniweb.com/software-development/python/code/ 216880/check-if-a-number-is-a-prime-number-python「這是從快速谷歌搜索。但有更簡單的方法來確定。 – 2012-07-31 07:52:18

+0

這個問題不是關於如何找到第1000個素數情況下一個簡單的[Eratosthenes篩會更好​​](http://stackoverflow.com/questions/11641098/interpreting-a-benchmark-in-c-clojure-python-ruby-scala-and-others#comment15487214_11641098))。問題是爲什麼OP只看到閃爍的光標 – jfs 2012-07-31 07:53:08