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]:
In [ ]: