diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-08-16 21:58:12 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-08-16 21:58:12 +0200 |
| commit | 78fbf8dbcf39aa51cf682a8795d0d0c3be6034c6 (patch) | |
| tree | 33ebc93733d3406422e5cd0defed3869e9c68b92 /haskell/020-factorial_digit_sum.hs | |
| parent | bb515e51d67f37ba9c6dfbd2fd0930be873a5ada (diff) | |
| download | project_euler-78fbf8dbcf39aa51cf682a8795d0d0c3be6034c6.tar.gz project_euler-78fbf8dbcf39aa51cf682a8795d0d0c3be6034c6.tar.bz2 project_euler-78fbf8dbcf39aa51cf682a8795d0d0c3be6034c6.zip | |
haskell problem 13 -> 18, 20
Diffstat (limited to 'haskell/020-factorial_digit_sum.hs')
| -rw-r--r-- | haskell/020-factorial_digit_sum.hs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/haskell/020-factorial_digit_sum.hs b/haskell/020-factorial_digit_sum.hs new file mode 100644 index 0000000..cbc404a --- /dev/null +++ b/haskell/020-factorial_digit_sum.hs @@ -0,0 +1,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) |
