0

私は最近Pythonをいじり始め、1000番目の素数を出力するプログラムを作成しましたが、出力には点滅するカーソルしか表示されません。コードを以下に示します。

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

ヘルプと簡潔な説明をいただければ幸いです

4

1 に答える 1

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
于 2012-07-31T07:47:55.277 に答える