In [1]:
"""
Problem 2
=========


   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, ...

   By considering the terms in the Fibonacci sequence whose values do not
   exceed four million, find the sum of the even-valued terms.
"""

def project_euler_2(x):
    """Returns sum of even Fibonacci numbers, sequence limit is x."""
    fibsum = 0
    a = 1
    b = 1
    
    while(a < x):
        if a % 2 == 0:
            fibsum += a
        a, b = b, a + b
    return fibsum

# project_euler_2(4000000)

%timeit project_euler_2(4000000)

# %prun project_euler_2(4000000)


100000 loops, best of 3: 4.8 µs per loop

In [ ]: