defmodule Main do def mfizzbuzz([0, _, _]), do: 1 def mfizzbuzz([_, 0, _]), do: 1 def mfizzbuzz([_, _, 0]), do: 1 def mfizzbuzz([_, _, _]), do: 0 def main do i = IO.gets("") |> String.trim |> String.to_integer [a, b, c] = IO.gets("") |> String.trim |> String.split |> Enum.map(&String.to_integer/1) 1 .. i |> Enum.reduce(0, fn x, acc -> mfizzbuzz([rem(x, a), rem(x, b), rem(x, c)]) + acc end) |> IO.puts end end