15 lines
351 B
Elixir
15 lines
351 B
Elixir
defmodule FactDigitSum do
|
|
defp fact(1, acc), do: acc
|
|
defp fact(n, acc), do: fact(n - 1, n * acc)
|
|
def fact(n), do: fact(n - 1, n)
|
|
|
|
defp digit_sum(0, acc), do: acc
|
|
defp digit_sum(n, acc), do: digit_sum(div(n, 10), rem(n, 10) + acc)
|
|
def digit_sum(n), do: digit_sum(n, 0)
|
|
end
|
|
|
|
|
|
FactDigitSum.fact(100)
|
|
|> FactDigitSum.digit_sum()
|
|
|> IO.puts()
|
|
|