euler_ex/problems/20/solution.exs

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()