n! means n × (n − 1) × ... × 3 × 2 × 1

For example, 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800, and the sum of the digits in the number 10! is 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27.

Find the sum of the digits in the number 100!


In [10]:
open System.Numerics

let bigOne = new BigInteger(1)

let rec fac' x = 
    if x > bigOne then (x * (fac' (x-bigOne)))
    else bigOne

let fac (x:int) = fac' (new BigInteger(x))

(fac 100).ToString().ToCharArray()
|> Array.map string
|> Array.map int
|> Array.sum


Out[10]:
648

In [ ]: