Exercice 36
Ecrire un programme en python qui prend en entrée un nombre n et affiche la liste des couples (p,q) formée d'entiers p et q tels que p+q soit parfait et inférieur ou égale n.
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
def parfait(nombre): # Fonction pour vérifier si un nombre est parfait diviseurs = [i for i in range(1, nombre) if nombre % i == 0] # Liste des diviseurs propres du nombre return sum(diviseurs) == nombre # Retourne True si la somme des diviseurs est égale au nombre def couples_parfaits(n): # Fonction pour trouver les couples (p, q) tels que p + q soit parfait et inférieur ou égal à n initial_parfaits = [] for p in range(1, n+1): for q in range(p, n+1): if parfait(p + q): initial_parfaits.append((p, q)) return initial_parfaits # Exemple n = 100 print(couples_parfaits(n)) """ output: [(1, 5), (1, 27), (2, 4), (2, 26), (3, 3), (3, 25), (4, 24), (5, 23), (6, 22), (7, 21), (8, 20), (9, 19), (10, 18), (11, 17), (12, 16), (13, 15), (14, 14)] """ |
Younes Derfoufi
CRMEF OUJDA
1 thought on “Solution Exercice 36 : liste des tuples dont la somme est parfait en python”