Sunday, 27 April 2014

Poject Euler: Problem #2

Continuing with my python journey, I'll be posting my efforts at solving puzzles from Project Euler as I work through them.

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.



 fib = 1  
 fib2 = 2  
 temp = 0  
 total = 0  
 while temp <=4000000:  
   temp = fib2  
   if temp % 2:  
     total += temp  
     print total  
   temp = fib + fib2  
   fib = fib2  
   fib2 = temp  
 print total  

Not the most elegant way, but I've got the result I need to move on to number 3.

Friday, 25 April 2014

Project Euler

I'm trying to learn how to program in Python currently. I'm not going to say it's coming easily to me because some of the books and programming guides are a little dry. Something that I've looked at in the past however, is Project Euler. As a budding programmer, it's good to have a problem to work on and that's what Project Euler gives you.

I've decided that I'd like to leave my progress here on my blog, so that I can look back as I progress with the puzzles and see if I can notice any improvements as time goes along. I'm not going to say that these early efforts are especially Pythonic but hopefully that's something that will come with time.

Here's my first solution to Project Euler's problem #1:

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.
Find the sum of all the multiples of 3 or 5 below 1000.

 list = []  
 for n in range(1000):  
   if n % 3 == 0 or n % 5 == 0:  
     list.append(n)  
 total = sum(list)  
 print total  

That gives me the answer I needed. It ain't pretty, but it works. One step at at time.


**Edit**

I'd originally posted my work for Euler problem #2 above. I've updated it now with the correct code.