Exercice 32
On dit qu'un nombre entier est un nombre heureux si, lorsqu'on calcule la somme des carrés de ses chiffres dans sa décomposition en base dix puis la somme des carrés des chiffres du nombre obtenu et ainsi de suite, on obtient à la fin le nombre 1. Un nombre est malheureux dans le cas contraire.
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 25 26 27 28 29 30 |
# Fonction qui calcul la somme des carrées des chiffres de n def somme_carres_chiffres(n): # Initialiser la somme des carrées somme = 0 # Prendre en charge les nombres négatifs n = abs(n) while n > 0: chiffre = n % 10 # Récupère le dernier chiffre (chiffre des unités) somme = somme + chiffre**2 # Ajoute son carré à la somme n = n // 10 # Supprimer le dernier chiffre return somme # Fonction qui determine si un nombre est heureux ou non def nombre_heureux(n): # initialisation des valeurs atteintes val_atteintes = set({}) # On remplace n par somme_carres_chiffres(n) # chaque fois que la valeur de n n'est pas atteinte et n != 1 while n not in val_atteintes and n != 1: val_atteintes.add(n) n = somme_carres_chiffres(n) return n == 1 # Exemple n = 7 m = 12 print(nombre_heureux(n)) # True print(nombre_heureux(m)) # False |
Younes Derfoufi
CRMEF OUJDA