Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I was solving the Project Euler problem 2

*By starting with 1 and 2, the first 10 terms of Fibonacci Series will be:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

Find the sum of all the even-valued terms in the sequence which do not exceed 4 million.*

here is my code in Python

a=0
b=1
nums = []
while True:
    x=a+b
    a=b
    b=x
    if(b>4000000):
        break
    nums.append(x)
sum=0
for x in nums:
    if(x%2==0):
        sum+=x
print sum

I noticed that the answer comes out to be 4613732 However I initially did a mistake by doing x%2!=0 and the answer turned out to be 4613731 (4613732-1) Is this some property or just luck??

share|improve this question

2 Answers 2

up vote 4 down vote accepted

Each even valued term (which are the 2nd, 5th, and every 3rd one after) is the sum of the preceding two odd terms. There is a startup transient that 2 doesn't have two 1's before it (you would if you started with 1,1). So the sum of the even valued terms up to some value will be 1 more than the sum of the preceding odd terms.

share|improve this answer

The sequence of Fibonacci numbers mod 2 goes $odd_1, odd_2, even_3$ - and in this sequence $odd_1+odd_2=even_3$. So the difference between the total of odds and evens up to any even number in the sequence is a constant, which happens to be 1. Stopping at an odd number gives a different result.

share|improve this answer
    
+1 for the last line –  nischayn22 Jun 18 '12 at 19:09

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.