Python で素数を効率的に識別する方法: ステップバイステップ ガイド

Susan Sarandon
リリース: 2024-10-21 13:20:02
オリジナル
733 人が閲覧しました

How to Identify Prime Numbers Efficiently in Python: A Step-by-Step Guide

Python で素数を効率的に識別する

指定された範囲内で一連の素数を見つけることは、一般的なプログラミング タスクです。 Python でこれを実現するには、ループと条件ステートメントの論理シーケンスを使用して素数を決定します。ただし、最初の試行によっては誤った結果が生じる可能性があることに注意することが重要です。

素数識別のためのコードの修正

元のコードを検査すると重大な欠陥が判明: 素数ではなく奇数が誤って表示されます。このエラーは、非素数を効果的に識別する条件が欠落していることが原因で発生します。問題の内訳は次のとおりです:

<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>
ログイン後にコピー

これを修正するには、数値が 2 とそれ自体の間の任意の数値で割り切れるかどうかを明示的にチェックする必要があります。約数が見つからない場合は素数になります。改善されたバージョンは次のとおりです。

<code class="python">for num in range(2, 101):
    prime = True
    for i in range(2, num):
        if (num % i == 0):
            prime = False
    if prime:
        print(num)</code>
ログイン後にコピー

効率を高めるためにコードを最適化する

パフォーマンスを向上させるには、指定された値の平方根までの除数のみをチェックすることをお勧めします。番号。この範囲内に約数が見つからない場合、それは素数であると見なされます。この最適化により、必要な反復回数が大幅に削減されます。

<code class="python">import math

for num in range(2, 101):
    if all(num % i != 0 for i in range(2, int(math.sqrt(num)) + 1)):
        print(num)</code>
ログイン後にコピー

さらなる改良

素数の方が大きいため、奇数のみを選択することで、コードをさらに効率的にすることができます。 2 よりも常に奇数です。修正されたコード:

<code class="python">import math
print(2)
for num in range(3, 101, 2):
    if all(num % i != 0 for i in range(3, int(math.sqrt(num)) + 1, 2)):
        print(num)</code>
ログイン後にコピー

以上がPython で素数を効率的に識別する方法: ステップバイステップ ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート