Elixir Count Factors
defmodule CountFactors do
  def count_factors(n), do: loop(1, 0, n)

  defp loop(i, count, n) when i * i < n do
    count = if rem(n, i) == 0, do: count + 2, else: count
    loop(i + 1, count, n)
  end

  defp loop(i, count, n) do
    if i * i == n, do: count + 1, else: count
  end
end

This checks divisors in pairs up to the square root, which keeps the work much smaller than testing every number.