Sha256: 93f89321494ab9fe9562969ff0173447d4087c83bff246d5e60115ef3979ff23

Contents?: true

Size: 436 Bytes

Versions: 324

Compression:

Stored size: 436 Bytes

Contents

defmodule PrimeFactors do
  @spec factors_for(pos_integer) :: [pos_integer]
  def factors_for(number) do
    do_factors(number, 2, [])
  end

  defp do_factors(1, _, acc),
    do: Enum.reverse(acc)
  defp do_factors(n, i, acc) when n < i * i,
    do: Enum.reverse(acc, [n])
  defp do_factors(n, i, acc) when rem(n, i) == 0,
    do: do_factors(div(n, i), i, [i | acc])
  defp do_factors(n, i, acc),
    do: do_factors(n, i + 1, acc)
end

Version data entries

324 entries across 324 versions & 1 rubygems

Version Path
trackler-2.2.1.109 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.108 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.107 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.106 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.105 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.104 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.103 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.102 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.101 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.100 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.99 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.98 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.97 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.96 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.95 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.94 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.93 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.92 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.91 tracks/elixir/exercises/prime-factors/example.exs
trackler-2.2.1.90 tracks/elixir/exercises/prime-factors/example.exs