Maison > Article > développement back-end > Comment puis-je générer efficacement des nombres premiers en Python ?
Générateur de nombres premiers simple en Python avec logique améliorée
Le code donné vise à générer des nombres premiers mais rencontre des problèmes. Voici une élaboration des problèmes et un code révisé avec des améliorations :
Problèmes et solutions :
Voici le script Python révisé :
import math def main(): count = 3 while True: isprime = True for x in range(2, int(math.sqrt(count) + 1)): if count % x == 0: isprime = False break if isprime: print(count) count += 1
Tamis optimisé de Ératosthène :
def gen_primes(): D = {} q = 2 while True: if q not in D: yield q D[q * q] = [q] else: for p in D[q]: D.setdefault(p + q, []).append(p) del D[q] q += 1
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!