Adloun

Compter les diviseurs

Exercice · OCaml (option informatique), chapitre 4 — Programmation impérative : références et boucles

É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.)

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.