Primzahlen in Python drucken
Beim Versuch, Primzahlen von 1 bis 100 aufzulisten, stieß ein Python-Benutzer auf ein Problem bei der Ausgabe ungerade Zahlen statt Primzahlen angezeigt. Um dieses Problem anzugehen, werden wir uns mit dem Problem befassen und eine überarbeitete Lösung bereitstellen.
Der ursprüngliche Code, wie unten gezeigt, iteriert über Zahlen von 1 bis 100 und prüft für jede Zahl, ob sie teilbar ist durch eine beliebige Zahl von 2 zu sich selbst:
<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>
Das Problem bei diesem Ansatz liegt in den Beendigungskriterien der verschachtelten Schleife. Sobald festgestellt wird, dass eine Zahl durch einen Faktor i teilbar ist, wird die innere Schleife unterbrochen und die print(num)-Anweisung ausgeführt. Allerdings beginnt die äußere Schleife dann, dieselbe Zahl mit dem nächsten Wert von i zu prüfen.
Um dieses Problem zu lösen, müssen wir die Schleife aktualisieren, um die Teilbarkeit durch alle Zahlen von 2 bis zur Quadratwurzel von num zu prüfen. Wenn keiner dieser Teiler n teilt, handelt es sich wahrscheinlich um eine Primzahl. Der korrigierte Code wäre:
<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>
Diese Lösung erkennt Primzahlen effizient, indem sie iterativ die Teilbarkeit durch kleinere Faktoren überprüft. Dadurch werden in der Ausgabe die Primzahlen von 1 bis 100 genau angezeigt.
Das obige ist der detaillierte Inhalt vonSo drucken Sie Primzahlen in Python korrekt: Beheben eines Problems mit ungerader Ausgabe. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!