Exercice 70
Ecrire un algorithme en python sous forme de fonction qui permet de tester si deux nombres m et n sont amis ou non.
Rappel
On dit que deux entiers positifs m et n sont amis ou amicaux si chacun des deux est égal exactement à la somme des diviseurs stricts(diviseurs autres que lui-même) de l'autre.
Exemple
n = 220 , la somme des diviseurs de n (en éliminant 220) : 1+2+4+5+10+11+20+22+44+55+110=284
m = 284 , la somme des diviseurs de m (en éliminant 284) : 1+2+4+71+142=220
et par suite m et n sont amis.
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 |
# coding: utf-8 # fonction qui détermine la somme des diviseurs propre d'un entier def sommeDiviseurs(n): # initialisation de la somme des diviseurs de n somme = 0 for i in range(1, n): if n%i == 0: somme = somme + i return somme # fonction qui teste si deux nombres sont amis ou non def nombresAmis(m , n): if sommeDiviseurs(m ) == n and sommeDiviseurs(n) == m: return True else: return False # Exemple m , n = 220 , 284 print(nombresAmis(m , n)) # affiche: True p , q = 151 , 250 print(nombresAmis(p , q)) # affiche: False |
Younes Derfoufi
CRMEF OUJDA
1 thought on “Solution Exercice 70: nombres amis en python”