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.
http://projecteuler.net/problem=2
Fibonacci数列において、項の値が400万を超えない範囲における偶数値の総和を求める問題。本当は問題の分析などすべきだろうがSage Math にはfibonacci_xrangeというこの問題のために作られたとしか考えられない組み込み函数がある。
折角なので使う。
----
print sum([i for i in fibonacci_xrange(4000000) if is_even(i)])
----
一所懸命考えている人にこんなソース見せたら怒られそうだが、車輪の再発明をするよりかはいいのか。