ホームページ >バックエンド開発 >Python チュートリアル >Python で素数を正しく出力する方法: 奇数の出力に関する問題を解決する
Python での素数の出力
Python ユーザーが 1 から 100 までの素数をリストしようとすると、出力が次のような問題に遭遇しました。素数の代わりに奇数を表示しました。これに対処するために、問題を詳しく調査し、修正された解決策を提供します。
以下に示すように、最初のコードは 1 から 100 までの数値を反復し、各数値について割り切れるかどうかを確認します。 2 からそれ自体までの任意の数値で置き換えます:
<code class="python">for num in range(1, 101): for i in range(2, num): if num % i == 0: break else: print(num) break</code>
このアプローチの問題は、ネストされたループの終了基準にあります。数値が因数 i で割り切れると判明すると、内部ループが中断され、print(num) ステートメントが実行されます。ただし、外側のループは、i の次の値と同じ数値のチェックを開始します。
これを解決するには、ループを更新して、2 から num の平方根までのすべての数値で割り切れるかどうかをチェックする必要があります。これらの約数がいずれも num を割らない場合、それは素数である可能性があります。修正されたコードは次のようになります。
<code class="python">for num in range(2, 101): prime = True for i in range(2, int(num**0.5) + 1): if num % i == 0: prime = False break if prime: print(num)</code>
このソリューションは、より小さな因数で割り切れる可能性を繰り返しチェックすることで素数を効率的に検出します。その結果、出力には 1 から 100 までの素数が正確に表示されます。
以上がPython で素数を正しく出力する方法: 奇数の出力に関する問題を解決するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。