Elixir Chocolates By Numbers
defmodule ChocolatesByNumbers do
def chocolates_by_numbers(n, m) do
g = gcd(n, m)
n * m |> div(g) |> div(m)
end
defp gcd(n, m) when rem(n, m) == 0, do: m
defp gcd(n, m), do: gcd(m, rem(n, m))
end
This uses the greatest common divisor to figure out how many chocolates get eaten before the pattern repeats.