Projet de recherche de nombres parfaits

PythonBeginner
Pratiquer maintenant

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

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.

Résumé

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

✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer