Tamis d'Eratosthène - Trouver des nombres premiers en Python
Problème :
Lors de la tentative d'implémentation l'algorithme Sieve of Eratosthenes en Python, les utilisateurs rencontrent souvent des temps d'exécution lents, en particulier lors de la recherche de nombres premiers supérieurs à 1 millions.
Solution :
La mise en œuvre donnée présente plusieurs domaines d'amélioration :
1. Algorithme non optimisé :
2. Inefficacité de la manipulation de liste :
Mise en œuvre optimisée :
Pour résoudre ces problèmes, considérez les solutions optimisées suivantes implémentation :
def primes_sieve2(limit): a = [True] * limit a[0] = a[1] = False for (i, isprime) in enumerate(a): if isprime: yield i for n in range(i*i, limit, i): # Mark factors non-prime a[n] = False
Améliorations clés :
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!