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
Il y a deux problèmes principaux :
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
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!