let rec f c xs n = if n = 1 then xs else if n mod c = 0 then f c (c :: xs) (n / c) else f (c + 1) xs n let x = read_int () let innsuu = f 2 [] x let rec g rs = function | [] -> rs | a :: b :: xs when a = b -> g rs xs | a :: xs -> g (a :: rs) xs let answer = g [] innsuu let () = print_int (List.fold_left ( * ) 1 answer); print_newline ()