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_numberpour trouver tous les nombres parfaits dans une plage donnée - Comment tester la fonction
perfect_numberet vérifier la correction des résultats - Comment optimiser et améliorer la fonction
perfect_numberpour 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 :
- Compléter la fonction
perfect_numberdansperfect_number.pypour trouver tous les nombres parfaits dans la plage de 1 à 1000. - 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 :
- La fonction
perfect_numberest définie pour trouver tous les nombres parfaits dans la plage de 1 à 1000. - Une liste vide
resultest initialisée pour stocker les nombres parfaits. - La fonction itère sur les nombres de 1 à 1000 (y compris).
- Pour chaque nombre, la fonction trouve ses facteurs (excluant le nombre lui-même) et les ajoute à la liste
factors. - Si la somme des facteurs est égale au nombre, le nombre est considéré comme un nombre parfait et est ajouté à la liste
result. - Enfin, la fonction retourne la liste
resultcontenant 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.



