n! означает n × (n − 1) × ... × 3 × 2 × 1
Например, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800, и сумма цифр в числе 10! равна 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27.
Найдите сумму цифр в числе 100!.
благодаря наличию типа bigint, которая не имеет ограничения (в теории) задача становится весьма тривиальной:
let fact = [1..100] |> List.map bigint |> List.reduce (*)
let answer = fact.ToString().ToCharArray() |> Array.sumBy (string>>int)
printfn $"the answer is {answer}" //the answer is 648
100! = 93 326 215 443 944 152 681 699 238 856 266 700 490 715 968 264 381 621 468 592 963 895 217 599 993 229 915 608 941 463 976 156 518 286 253 697 920 827 223 758 251 185 210 916 864 000 000 000 000 000 000 000 000