Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
pgcd_ppcm [2009/11/23 16:57] tyrtamos |
pgcd_ppcm [2009/11/23 17:57] tyrtamos |
||
---|---|---|---|
Ligne 91: | Ligne 91: | ||
</ | </ | ||
- | ===== Calcul du PGCD de n nombres entiers ===== | + | ===== Calcul du PGCD de n (> |
Une curiosité: calcul du PGCD d'un nombre quelconque d' | Une curiosité: calcul du PGCD d'un nombre quelconque d' | ||
Ligne 126: | Ligne 126: | ||
En effet, 2*3=6 est bien le PGCD des 4 nombres a, b, c et d. | En effet, 2*3=6 est bien le PGCD des 4 nombres a, b, c et d. | ||
- | En fait, on pourrait | + | En fait, on peut proposer cet autre code plus compact |
<code python> | <code python> | ||
Ligne 159: | Ligne 159: | ||
- | ===== Calcul du PGCD étendu ===== | + | ===== Calcul du PGCD étendu |
Pour la théorie, voir ici: [[http:// | Pour la théorie, voir ici: [[http:// | ||
Ligne 233: | Ligne 233: | ||
</ | </ | ||
- | ===== Calcul du PPCM ===== | + | ===== Calcul du PPCM de 2 nombres entiers |
PPCM = Plus Petit Commun Multiple | PPCM = Plus Petit Commun Multiple | ||
Ligne 289: | Ligne 289: | ||
ppcm(0,42) => 0 | ppcm(0,42) => 0 | ||
ppcm(0,0) => 0 | ppcm(0,0) => 0 | ||
+ | </ | ||
+ | |||
+ | ===== Calcul du PPCM de n (>=2) nombre entiers ===== | ||
+ | |||
+ | On va faire comme pour le PGCD: ppcm(a, b, c) = ppcm(ppcm(a, | ||
+ | |||
+ | Voilà un code autonome qui fera ça très bien, et qui s' | ||
+ | |||
+ | <code python> | ||
+ | def ppcm(*n): | ||
+ | """ | ||
+ | def _pgcd(a,b): | ||
+ | while b: a, b = b, a%b | ||
+ | return a | ||
+ | p = abs(n[0]*n[1])// | ||
+ | for x in n[2:]: | ||
+ | p = abs(p*x)// | ||
+ | return p | ||
+ | </ | ||
+ | |||
+ | Application: | ||
+ | |||
+ | <code python> | ||
+ | a = 2*5*7 # 70 | ||
+ | b = 2*7*11 # 154 | ||
+ | c = 2*3*5*7 # 210 | ||
+ | d = 2*3*11 # 66 | ||
+ | |||
+ | print ppcm(a, b) | ||
+ | 770 | ||
+ | print ppcm(a, b, c) | ||
+ | 2310 | ||
+ | print ppcm(a, b, c, d) | ||
+ | 2310 | ||
</ | </ | ||