Exercice 86
1) -Ecrire un algorithme python sous forme de fonction list_prim_digits(n) qui prend en paramètre un entier n > 0 et qui rentourne la liste des chiffres premiers de l'entier n dans la direction droite vers la gauche sans faire utiliser la fonction str(). Exemple: si n = 74365 , la fonction renvoie la liste [7, 3, 5].
2) - En utilisant la question 1, créer une fonction sum_prim_positions(n) qui calcule la somme des chiffres premiers de l'entier n. Exemple : Pour n = 74365, la fonction renvoie la sommesum_prim_positions(n)=7+3+5=15
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 31 |
# fonction qui teste la primalité d'un entier n def is_prim_digit(d): if d < 2: return False for i in range(2, d): if d % i == 0: return False return True # Fonction qui renvoie la liste des chiffres premiers de n def list_prim_digits(n): L = [] while n > 0: d = n % 10 if is_prim_digit(d): L.append(d) n //= 10 return L # Fonction qui calcul la somme des chiffres premiers de n def sum_prim_positions(n): s = 0 L = list_prim_digits(n) for x in L: s += x return s # Exemple n = 74365 print("La somme des chiifres premiers de n est : ", sum_prim_positions(n)) # Output : La somme des chiifres premiers de n est : 15 |
Younes Derfoufi CRMEF OUJDA



