Primzahlgenerator in Python
Dieser Python-Code zielt darauf ab, Primzahlen zu generieren, erfordert jedoch einige Anpassungen für eine optimale Funktionalität.
Der korrigierte Code unten:
import math
def main():
count = 3
while True:
is_prime = True
for x in range(2, int(math.sqrt(count) + 1)):
if count % x == 0:
is_prime = False
break
if is_prime:
print(count)
count += 1
Probleme und Korrekturen:
-
Druckproblem: Der ursprünglich gedruckte Code auch wenn es nicht erstklassig war. Dies lag daran, dass mit der Bedingung if count % x != 0 gedruckt wurde, was keine Primalität gewährleistete. Der korrigierte Code wird nur gedruckt, wenn is_prime True ist.
-
Schleifensteuerung: Die continue-Anweisung im Originalcode hat die Schleifeniteration übersprungen, als die Bedingung erfüllt war, aber sie hätte die Iteration mit beenden sollen Pause, um die nächste Zahl zu verarbeiten.
-
Effizienz: Die manuelle Prüfung der Teilbarkeit für jede Zahl kann bei großen Zahlen ineffizient sein. Der korrigierte Code verwendet das Sieb des Eratosthenes, das für die Primzahlerzeugung viel effizienter ist.
Das obige ist der detaillierte Inhalt vonWie kann ich meinen Python-Primzahlengenerator hinsichtlich Geschwindigkeit und Genauigkeit optimieren?. 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