OCaml (option informatique) · Chapitre 1 · Exercice de TD
L'algorithme d'Euclide
Découvrir OCaml : expressions, valeurs et types · niveau 3 (difficile)
Énoncé
Écrire une fonction récursive pgcd calculant le PGCD de deux entiers naturels, par l'algorithme d'Euclide ( et ). La tester mentalement sur pgcd 30 12.
Corrigé
let rec pgcd a b =
if b = 0 then a
else pgcd b (a mod b)
Déroulé de pgcd 30 12 : pgcd 12 6 (car ) pgcd 6 0 (car ) renvoie 6. Le cas de base b = 0 est atteint car le reste a mod b décroît strictement et reste positif : la suite des seconds arguments est une suite d'entiers naturels strictement décroissante, donc finie.
Exercices semblables
- Application partielle corrigé
- Fonction d'ordre supérieur et polymorphisme corrigé
- Manipuler des n-uplets corrigé
- Suite définie par récurrence mutuelle corrigé
- Puissance entière et dépassement corrigé