Project Euler Problem 2: Even Fibonacci Numbers¶
The source code for this problem can be found here.
Problem Statement¶
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with \(1\) and \(2\), the first \(10\) terms will be:
\(1, 2, 3, 5, 8, 13, 21, 34, 55, 89, \dots\)
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
Solution Discussion¶
Simply iterate over the Fibonacci numbers up to four million and sum all the even ones.
Solution Implementation¶
from itertools import takewhile
from lib.numbertheory import is_even
from lib.sequence import Fibonaccis
def solve():
""" Compute the answer to Project Euler's problem #2 """
upper_bound = 4000000
numbers = [fib_i for fib_i in takewhile(lambda x: x <= upper_bound, Fibonaccis()) if is_even(fib_i)]
answer = sum(numbers)
return answer
expected_answer = 4613732
-
solutions.problem2.
solve
()¶ Compute the answer to Project Euler’s problem #2