Euler 2 (Python)
Este post fue migrado de un blog hecho con Wordpress. Si se ve mal, dejame un comentario y lo arreglo.
Enunciado 2
Cada nuevo item en la secuencia de Fibonacci es generado sumando los dos términos previos. Empezando con 1 y 2, los primeros 10 términos serían:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
Encontrar la suma de todos los términos pares en la secuencia que no supera los 4 millones.
Solución
La solución fue obtenida en el intérprete interactivo de Python 2.5.2:
>>> MAX = 4000000 >>> def evsum(n): ... s = 0 ... a,b = 1,2 ... while True: ... if a >= n: ... break ... if a % 2 ==0: ... print a, " ", ... s += a ... a,b = b,a+b ... return s ... >>> evsum(MAX) 2 8 34 144 610 2584 10946 46368 196418 832040 3524578 4613732
Python tips
- La asignación múltiple es un idom muy cómodo:
a,b = 1,2
- Si agregamos una coma final a la enumeración de objetos a ser impresos con
print
, se logra el efecto de que no se imprima el salto de línea (\n
) final.
Comentarios
Comments powered by Disqus