OCaml (option informatique) · Chapitre 4 · Exercice de TD
Compter les diviseurs
Programmation impérative : références et boucles · niveau 2
Énoncé
Écrire nb_diviseurs n (), le nombre de diviseurs de n, avec une boucle.
Corrigé
let nb_diviseurs n =
let c = ref 0 in
for d = 1 to n do
if n mod d = 0 then c := !c + 1
done;
!c
On essaie chaque d de 1 à n et l'on incrémente c quand d divise n. Le if sans else est légitime : sa branche est de type unit. (On pourrait s'arrêter à pour un gain de coût.)
Exercices semblables
- PGCD impératif corrigé
- Fibonacci itératif corrigé
- Suite de Syracuse corrigé
- Racine carrée entière corrigé
- Test de primalité corrigé