Project Euler 225

プロジェクトオイラー
http://projecteuler.net/index.php

Q225.
Tn = Tn - 1 + Tn - 2 + Tn - 3 T1 = T2 = T3 = 1を満たす数列の全ての項に対して割り切れない自然数がある。このうち124番目のものは?

常に割り切れない場合は、剰余で(1, 1, 1)と並ぶパターンが出てくる。途中から割り込んでくることはない。
なぜ124番目なのかと思ったら、そういうことか。



def exists_divisible(d):
a, b, c = 1, 1, 1
while True:
a, b, c = (a + b + c) % d, a, b
if a == 0:
return True
if a == 1 and b == 1 and c == 1:
return False

N = 124
d = 1
counter = 0
while counter < N:
d += 2
if not exists_divisible(d):
counter += 1
print d