Projet de recherche de nombres parfaits

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce projet, vous allez apprendre à trouver tous les nombres parfaits dans la plage de 1 à 1000. Les nombres parfaits sont des entiers positifs égaux à la somme de leurs diviseurs propres, excluant le nombre lui-même.

👀 Aperçu

## si la plage est de 1 à 10, la sortie devrait être :
Nombres parfaits : 6  ## 6 = 1 + 2 + 3

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment implémenter la fonction perfect_number pour trouver tous les nombres parfaits dans une plage donnée
  • Comment tester la fonction perfect_number et vérifier la correction des résultats
  • Comment optimiser et améliorer la fonction perfect_number pour une meilleure performance et une meilleure lisibilité

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Comprendre le concept de nombres parfaits et leurs propriétés mathématiques
  • Écrire une fonction pour trouver tous les nombres parfaits dans une plage spécifiée
  • Tester et déboguer votre code pour vous assurer qu'il fonctionne correctement
  • Optimiser votre code pour une meilleure efficacité et une meilleure lisibilité
  • Appliquer vos compétences de résolution de problèmes pour améliorer vos capacités de programmation

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/python_shell("Python Shell") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/arguments_return("Arguments and Return Values") subgraph Lab Skills python/python_shell -.-> lab-302754{{"Projet de recherche de nombres parfaits"}} python/conditional_statements -.-> lab-302754{{"Projet de recherche de nombres parfaits"}} python/for_loops -.-> lab-302754{{"Projet de recherche de nombres parfaits"}} python/lists -.-> lab-302754{{"Projet de recherche de nombres parfaits"}} python/function_definition -.-> lab-302754{{"Projet de recherche de nombres parfaits"}} python/arguments_return -.-> lab-302754{{"Projet de recherche de nombres parfaits"}} end

Comprendre le problème

Dans cette étape, vous allez apprendre le concept de nombres parfaits et les exigences du projet.

Les nombres parfaits sont des entiers positifs égaux à la somme de leurs diviseurs propres, excluant le nombre lui-même. Par exemple, les facteurs de 6 sont 1, 2 et 3. Puisque 6 = 1 + 2 + 3, 6 est un nombre parfait.

L'objectif de ce projet est de :

  1. Compléter la fonction perfect_number dans perfect_number.py pour trouver tous les nombres parfaits dans la plage de 1 à 1000.
  2. Afficher tous les nombres parfaits trouvés, séparés par un espace.

Implémenter la fonction perfect_number

Ouvrez le fichier perfect_number.py et localisez la fonction perfect_number. Cette fonction est responsable de trouver tous les nombres parfaits dans la plage de 1 à 1000.

Voici le code initial fourni :

def perfect_number():
    """
    Trouve tous les nombres parfaits dans la plage de 1 à 1000.

    Retourne :
        list : Une liste de nombres parfaits trouvés dans la plage de 1 à 1000.
    """
    result = []

    for num in range(1, 1001):
        factors = []
        for i in range(1, num):
            if num % i == 0:
                factors.append(i)
        if sum(factors) == num:
            result.append(num)

    return result

Passons en revue le code étape par étape :

  1. La fonction perfect_number est définie pour trouver tous les nombres parfaits dans la plage de 1 à 1000.
  2. Une liste vide result est initialisée pour stocker les nombres parfaits.
  3. La fonction itère sur les nombres de 1 à 1000 (y compris).
  4. Pour chaque nombre, la fonction trouve ses facteurs (excluant le nombre lui-même) et les ajoute à la liste factors.
  5. Si la somme des facteurs est égale au nombre, le nombre est considéré comme un nombre parfait et est ajouté à la liste result.
  6. Enfin, la fonction retourne la liste result contenant tous les nombres parfaits trouvés.

Tester la fonction perfect_number

Pour tester la fonction perfect_number, ajoutez le code suivant à la fin du fichier perfect_number.py :

if __name__ == "__main__":
    result = perfect_number()
    print("Nombres parfaits :", " ".join(map(str, result)))

Ce code appellera la fonction perfect_number et affichera tous les nombres parfaits trouvés, séparés par un espace.

Enregistrez le fichier perfect_number.py et exécutez le script :

python perfect_number.py

La sortie devrait être :

Nombres parfaits : 6 28 496

Cela signifie que la fonction perfect_number fonctionne correctement et a trouvé les nombres parfaits dans la plage de 1 à 1000.

✨ Vérifier la solution et pratiquer

Sommaire

Félicitations ! Vous avez terminé ce projet. Vous pouvez pratiquer davantage de laboratoires sur LabEx pour améliorer vos compétences.