blob: cbc404a721e5c097b4295eed9c0ad075b2bc6fe2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
-- Factorial digit sum
--
-- Problem 20
-- 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!
import Data.Char
main = print (sum [ord x - ord '0' | x <- show $ factorial' 100])
factorial' :: Integer -> Integer
factorial' 0 = 0
factorial' 1 = 1
factorial' n = n * factorial' (n - 1)
|