Maison  >  Article  >  développement back-end  >  Comment puis-je optimiser mon générateur de nombres premiers Python pour plus de vitesse et de précision ?

Comment puis-je optimiser mon générateur de nombres premiers Python pour plus de vitesse et de précision ?

DDD
DDDoriginal
2024-11-11 04:27:03912parcourir

How can I optimize my Python prime number generator for speed and accuracy?

Générateur de nombres premiers en Python

Ce code Python vise à générer des nombres premiers, mais il nécessite quelques ajustements pour une fonctionnalité optimale.

Le code corrigé ci-dessous :

import math

def main():
    count = 3

    while True:
        is_prime = True

        for x in range(2, int(math.sqrt(count) + 1)):
            if count % x == 0:
                is_prime = False
                break

        if is_prime:
            print(count)

        count += 1

Problèmes et Corrections :

  1. Problème d'impression :Le code original imprimé compte même s'il n'était pas premier. C'était parce qu'il imprimait sur la condition if count % x != 0, ce qui ne garantissait pas la primalité. Le code corrigé s'imprime uniquement lorsque is_prime est True.
  2. Contrôle de boucle : L'instruction continue dans le code d'origine a ignoré l'itération de la boucle lorsque la condition était remplie, mais elle aurait dû terminer l'itération en utilisant pause pour traiter le numéro suivant.
  3. Efficacité : Vérifier manuellement la divisibilité de chaque numéro peut être inefficace pour les grands nombres. Le code corrigé utilise le Tamis d'Eratosthène, bien plus efficace pour la génération prime.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn