Scanf.scanf "%d" (fun n -> let module S = Set.Make (struct type t = int let compare = compare end) in let rec loop2 i c set = let rec loop5 j d set = if j > n then set else loop5 (j + 1) (d * 5) (S.add d set) in if i > n then set else loop2 (i + 1) (c * 2) (loop5 0 c set) in S.iter (Printf.printf "%d\n") @@ loop2 0 1 S.empty )