defmodule Fib do def fib(1) do 1 end def fib(2) do 2 end def fib(n) do fib(n - 1) + fib(n - 2) end def solve(list, count) do if (n = fib(count)) < 4000000 do [if rem(n, 2) == 0 do n else 0 end | list] |> solve(count + 1) else list end end end IO.puts(Enum.sum(Fib.solve([0], 1)))