019f8fd211
git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15c
git-subtree-split:24f5a642af
Change-Id: I6105b3762b79126b3488359c95978cadb3efa789
26 lines
379 B
Elixir
26 lines
379 B
Elixir
defmodule Math do
|
|
@moduledoc """
|
|
Math utilities.
|
|
"""
|
|
alias Extras
|
|
|
|
@doc """
|
|
Returns the prime factors for `n`.
|
|
|
|
## Examples
|
|
|
|
iex> Math.factor(15)
|
|
[3, 5]
|
|
|
|
"""
|
|
def factor(1), do: []
|
|
|
|
def factor(n) do
|
|
Extras.range(2, n - 1)
|
|
|> Enum.find(&(rem(n, &1) == 0))
|
|
|> case do
|
|
nil -> [n]
|
|
x -> [x | factor(div(n, x))]
|
|
end
|
|
end
|
|
end
|