Scanf.scanf "%d" (fun n ->
    let module S = Set.Make (struct type t = string let compare = compare end) in

    let rec loop i set =
        if i * i > n then S.cardinal set else
            if n mod i <> 0 then loop (i + 1) set else
                let set = S.add (Printf.sprintf "%d%d" i (n / i)) set in
                let set = S.add (Printf.sprintf "%d%d" (n / i) i) set in
                loop (i + 1) set
    in
    loop 1 S.empty |> Printf.printf "%d\n"
)