Project Euler 115

http://projecteuler.net/index.php?section=problems&id=115


前問とほとんど変わりません。

from itertools import count

N = 10 ** 6
M = 50
a = [ 1 ] * M
for n, v in ((n, 1 + sum(a[k] for k in range(n - M) + [ n - 1 ]))
                                                for n in count(M)):
    if v > N:
        print n
        break
    a.append(v)