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

Susan Sarandon
Freigeben: 2024-10-21 13:20:02
Original
617 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!