aboutsummaryrefslogtreecommitdiff
path: root/haskell/020-factorial_digit_sum.hs
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2019-08-16 21:58:12 +0200
committerCharles <sircharlesaze@gmail.com>2019-08-16 21:58:12 +0200
commit78fbf8dbcf39aa51cf682a8795d0d0c3be6034c6 (patch)
tree33ebc93733d3406422e5cd0defed3869e9c68b92 /haskell/020-factorial_digit_sum.hs
parentbb515e51d67f37ba9c6dfbd2fd0930be873a5ada (diff)
downloadproject_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.hs19
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)