exercism-elixir/armstrong-numbers/lib/armstrong_number.ex
2022-03-14 06:57:37 -04:00

13 lines
312 B
Elixir

defmodule ArmstrongNumber do
@moduledoc """
Provides a way to validate whether or not a number is an Armstrong number
"""
@spec valid?(integer) :: boolean
def valid?(number) do
digits = Integer.digits(number)
n = length(digits)
number == Enum.reduce(digits, 0, &(&1 ** n + &2))
end
end