Optimierung eines einfachen Primzahlgenerators in Python
Der bereitgestellte Python-Code zielt darauf ab, Primzahlen zu generieren, muss jedoch aus Effizienzgründen verbessert werden.
Probleme mit dem Originalcode:
Verbessert Code:
import math def main(): count = 3 while True: isprime = True for x in range(2, math.ceil(math.sqrt(count)) + 1): if count % x == 0: isprime = False break if isprime: print(count) count += 1
Erklärung:
Erweiterte Prime Generation:
Für eine effizientere Prime Generation ist die Empfohlen wird ein Sieb aus Eratosthenes. Hier ist eine optimierte Python-Implementierung mit Kommentaren:
def gen_primes(): D = {} q = 2 while True: if q not in D: yield q for later in range(q * q, 1000000, q): D[later] = [q] else: for later in range(q + D[q][0], 1000000, q): D.setdefault(later, []).append(q) del D[q] q += 1
Das obige ist der detaillierte Inhalt vonWie kann ich einen einfachen Primzahlgenerator in Python optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!