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