2014年3月7日金曜日

#14(2.1 sec): http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2014
#Python 3.3

dic = {1:1}
def collatzSeqNum(n):
    if n in dic: return dic[n]
    if n%2==0: dic[n] = 1 + collatzSeqNum(int(n/2))
    else: dic[n] = 1 + collatzSeqNum(3*n+1)
    return dic[n]

res, maxSeq = 1, 1
for i in range(2, 1000000):
    t = collatzSeqNum(i)
    if t > maxSeq: res = i; maxSeq = t

print(res, maxSeq)

0 件のコメント:

コメントを投稿