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!