Énoncé
Lire deux entiers strictement positifs. Calculer leur PGCD en soustrayant le plus petit du plus grand.
Exemples et cas limites
Saisissez ces valeurs dans la console pour vérifier votre résultat :
Entrée
A = 48 B = 18
Sortie attendue
6
Entrée
A = 7 B = 7
Sortie attendue
7
Entrée
A = 0 B = 8 A = 48 B = 18
Sortie attendue
6
Code algorithmique
| 1 | algorithme pgcd_soustractions |
| 2 | debut |
| 3 | repeter |
| 4 | ecrire("A = ") |
| 5 | lire(a) |
| 6 | ecrire("B = ") |
| 7 | lire(b) |
| 8 | jusqua a > 0 et b > 0 |
| 9 | // compléter le traitement demandé dans l’énoncé. |
| 10 | fin |
| 1 | algorithme pgcd_soustractions |
| 2 | debut |
| 3 | repeter |
| 4 | ecrire("A = ") |
| 5 | lire(a) |
| 6 | ecrire("B = ") |
| 7 | lire(b) |
| 8 | jusqua a > 0 et b > 0 |
| 9 | tant_que a ≠ b faire |
| 10 | si a > b alors |
| 11 | a ← a - b |
| 12 | sinon |
| 13 | b ← b - a |
| 14 | fin si |
| 15 | fin_tant_que |
| 16 | ecrire_nl(a) |
| 17 | fin |
Méthode
- Tant que les valeurs diffèrent, réduire la plus grande.
- Quand elles sont égales, cette valeur est le PGCD.
Comprendre la correction
Déroulement sur un exemple
- Avec (48, 18), on soustrait 18 à 48 et on obtient (30, 18), puis (12, 18).
- On réduit ensuite la plus grande valeur : (12, 6), puis (6, 6).
- Les valeurs sont égales : le PGCD vaut 6. Soustraire l’un des nombres à l’autre conserve leurs diviseurs communs.
Erreurs à éviter
- Soustrayez le plus petit du plus grand pour conserver des valeurs strictement positives.
- Ne poursuivez pas quand A = B : la soustraction suivante créerait un zéro.