DEV Community

Discussion on: Daily Challenge Post #20 - Number Check

Collapse
 
brightone profile image
Oleksii Filonenko

Elixir:

defmodule NumberCheck do
  require Integer

  @spec check(number) :: {prime :: boolean, even :: boolean, multiple_of_ten :: boolean}
  def check(number), do: {prime?(number), Integer.is_even(number), rem(number, 10) == 0}

  @spec prime?(number) :: boolean
  defp prime?(n) when n < 2, do: false
  defp prime?(n), do: not Enum.any?(2..(n |> :math.sqrt() |> floor()), &(rem(n, &1) == 0))
end