0

最初の 1000 個の素数を生成するだけのコードを書いていますが、このコードがそのままループしない理由がわかりません。

divisor = 1
guess = 2
count = 0
while count < 1000:
    divisor+=1
    while guess%divisor==0:
        if guess==divisor:
            print(guess)
            guess+=1
            count+=1
            divisor=1
        else:
            guess+=1
            divisor=1

if と else の定義の最後に break を追加すると (以下に示すように)、ループは次のように正常に実行されますが、理解できません。

        if guess==divisor:
            print(guess)
            guess+=1
            count+=1
            divisor=1
            break
        else:
            guess+=1
            divisor=1
            break
4

3 に答える 3

0

訂正:

divisor = 1
guess = 2
count = 0
while count<1000:
    divisor += 1
    if guess%divisor==0:            #'while' was replaced by 'if'
        if guess==divisor:
            print guess
            guess += 1
            count += 1
        else: guess += 1
        divisor = 1                 #moved here

出力:

2
3
5
7
11
13
17
...
7841
7853
7867
7873
7877
7879
7883
7901
7907
7919
于 2013-10-13T02:48:00.213 に答える