**commit** d4b5c67c0367f0f779ccb79f3ea0138ea68e7987
**parent** 89d0d1615d7a9178c8c65563124cd08b168b2cc9
**Author:** Cody Lewis <luxdotsugi@gmail.com>
**Date:** Sat, 17 Nov 2018 19:35:30 +1100
Solution to problem 2
**Diffstat:**

A | Two.py | | | 27 | +++++++++++++++++++++++++++ |

1 file changed, 27 insertions(+), 0 deletions(-)

**diff --git a/Two.py b/Two.py**
@@ -0,0 +1,27 @@
+'''
+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 find_sum(n):
+ fib = [1, 2, 0] # Only ever need to store 3 Fibonacci numbers
+ sigma = 0
+ index = 1
+ while fib[index] < n:
+ if index == 1: # Even number at this index every time
+ sigma += fib[index]
+ index = (index + 1) % 3 # Stop recalculation
+ fib[index] = fib[(index - 1) % 3] + fib[(index - 2) % 3]
+ return sigma
+
+
+if __name__ == "__main__":
+ LIMIT = 4_000_000
+ print(f"The sum of the Fibonacci numbers up not exceeding {LIMIT} is " +
+ f"{find_sum(LIMIT)}")
+