let rec synergy x = if (Array.length x) < 2 then x.(0) else x.(0) * (synergy (Array.sub x 1 ((Array.length x) - 1)));; let factorial n = (synergy (Array.init n (fun x -> x + 1)));; let rec pow x y = if y == 1 then x else x * (pow x (y - 1));; print_endline @@ string_of_int @@ Scanf.scanf "%d" (fun x -> (factorial x) mod ((pow 10 9) + 7));;