Maison >développement back-end >Tutoriel Python >Comment imprimer correctement les nombres premiers en Python : résoudre un problème de sortie impaire

Comment imprimer correctement les nombres premiers en Python : résoudre un problème de sortie impaire

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-21 12:38:021019parcourir

How to Correctly Print Prime Numbers in Python: Resolving an Issue with Odd Output

Impression de nombres premiers en Python

En tentant de répertorier les nombres premiers de 1 à 100, un utilisateur de Python a rencontré un problème où la sortie affiché des nombres impairs au lieu de nombres premiers. Pour résoudre ce problème, nous allons approfondir le problème et proposer une solution révisée.

Le code initial, comme indiqué ci-dessous, parcourt les nombres de 1 à 100, et pour chaque nombre, il vérifie s'il est divisible. par n'importe quel nombre de 2 à lui-même :

<code class="python">for num in range(1, 101):
    for i in range(2, num):
        if num % i == 0:
            break
        else:
            print(num)
            break</code>

Le problème de cette approche réside dans les critères de terminaison de la boucle imbriquée. Une fois qu'un nombre s'avère divisible par un facteur i, la boucle interne est interrompue et l'instruction print(num) est exécutée. Cependant, la boucle externe commence alors à vérifier le même nombre avec la valeur suivante de i.

Pour résoudre ce problème, nous devons mettre à jour la boucle pour vérifier la divisibilité par tous les nombres de 2 à la racine carrée de num. Si aucun de ces diviseurs ne divise num, il s'agit probablement d'un nombre premier. Le code corrigé serait :

<code class="python">for num in range(2, 101):
    prime = True
    for i in range(2, int(num**0.5) + 1):
        if num % i == 0:
            prime = False
            break
    if prime:
        print(num)</code>

Cette solution détecte efficacement les nombres premiers en vérifiant de manière itérative la divisibilité par des facteurs plus petits. En conséquence, la sortie affichera avec précision les nombres premiers de 1 à 100.

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