Pourquoi mon générateur de nombres premiers Python imprime-t-il uniquement la variable count ?

Patricia Arquette
Libérer: 2024-11-10 21:56:02
original
796 Les gens l'ont consulté

Why is my Python prime number generator only printing the count variable?

Dépannage d'un générateur de nombres premiers simples en Python

Votre code est conçu pour générer des nombres premiers, mais il rencontre des problèmes et n'imprime que le décompte variable. Explorons pourquoi et proposons une solution.

Le code suivant est identifié comme présentant des problèmes :

import math

def main():
    count = 3
    one = 1
    while one == 1:
        for x in range(2, int(math.sqrt(count) + 1)):
            if count % x == 0:
                continue
            if count % x != 0:
                print(count)

        count += 1
Copier après la connexion

Il y a deux problèmes principaux :

  1. Vous avez tort imprimer le nombre comme premier lorsqu'il est divisible par « x ». Vous devriez vérifier la divisibilité au lieu de l'inverse.
  2. Au lieu de rompre la boucle interne lorsque le nombre devient divisible par « x », vous passez à l'itération suivante, ce qui conduira à une détermination première inexacte.

Voici une version révisée du code avec ces problèmes résolus :

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
Copier après la connexion

Ce code mis à jour corrige le logique pour garantir que seuls les nombres premiers sont imprimés. Il vérifie la divisibilité à l'aide de l'indicateur « is_prime » et rompt la boucle interne si le nombre devient divisible par n'importe quelle valeur de « x ».

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal