Heim  >  Artikel  >  Backend-Entwicklung  >  So identifizieren Sie Primzahlen effizient in Python: Eine Schritt-für-Schritt-Anleitung

So identifizieren Sie Primzahlen effizient in Python: Eine Schritt-für-Schritt-Anleitung

Susan Sarandon
Susan SarandonOriginal
2024-10-21 13:20:02624Durchsuche

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

Primzahlen effizient in Python identifizieren

Das Finden einer Reihe von Primzahlen innerhalb eines bestimmten Bereichs ist eine häufige Programmieraufgabe. Um dies in Python zu erreichen, verwenden wir eine logische Folge von Schleifen und bedingten Anweisungen, um die Primalität zu bestimmen. Es ist jedoch wichtig zu beachten, dass einige erste Versuche zu falschen Ergebnissen führen können.

Korrektur des Codes zur Primzahlidentifizierung

Eine Überprüfung des Originalcodes zeigt einen kritischen Fehler : Es werden fälschlicherweise ungerade Zahlen und keine Primzahlen ausgegeben. Dieser Fehler ist auf eine fehlende Bedingung zurückzuführen, die Nicht-Primzahlen effektiv identifiziert. Hier ist eine Aufschlüsselung des Problems:

<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>

Um dies zu beheben, müssen wir explizit prüfen, ob die Zahl durch eine beliebige Zahl zwischen 2 und sich selbst teilbar ist. Wenn keine Teiler gefunden werden, handelt es sich um eine Primzahl. Hier ist die verbesserte Version:

<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>

Optimierung des Codes für Effizienz

Um die Leistung zu verbessern, wird empfohlen, nur Teiler bis zur Quadratwurzel des Gegebenen zu überprüfen Nummer. Wenn in diesem Bereich keine Teiler gefunden werden, kann er als Primzahl betrachtet werden. Diese Optimierung reduziert die Anzahl der erforderlichen Iterationen drastisch:

<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>

Weitere Verfeinerungen

Der Code kann noch effizienter gemacht werden, indem nur ungerade Zahlen ausgewählt werden, da die Primzahlen größer sind als 2 sind immer ungerade. Der überarbeitete Code:

<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>

Das obige ist der detaillierte Inhalt vonSo identifizieren Sie Primzahlen effizient in Python: Eine Schritt-für-Schritt-Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn