project euler problem 2 https projecteuler netproblem2 even fibonacci numbers 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 evenvalued terms references https en wikipedia orgwikifibonaccinumber returns the sum of all even fibonacci sequence elements that are lower or equal to n solution10 10 solution15 10 solution2 2 solution1 0 solution34 44 returns the sum of all even fibonacci sequence elements that are lower or equal to n solution 10 10 solution 15 10 solution 2 2 solution 1 0 solution 34 44
def solution(n: int = 4000000) -> int:
    

    fib = [0, 1]
    i = 0
    while fib[i] <= n:
        fib.append(fib[i] + fib[i + 1])
        if fib[i + 2] > n:
            break
        i += 1
    total = 0
    for j in range(len(fib) - 1):
        if fib[j] % 2 == 0:
            total += fib[j]

    return total


if __name__ == "__main__":
    print(f"{solution() = }")