Quick actions

cmd+k|ctrl+k

Navigation

Languages

PE

Snippet info

Language

Python

Visibility

public

Author

thanhtu250590

Created

2016-06-29T11:05:57Z

Updated

2016-07-04T08:53:08Z

#problem 14
# lưu số bước chia của các số ban đầu vào 1 dictionary với key = số , value = số bước chia
# nếu khi chia gặp số ở trong dictionary chỉ cần + số bước đã tính trước vào -> ko cần phải tính lại
def even(n):
    global count
    count+=1
    return int(n/2)
def odd(n):
    global count
    count+=1
    return 3*n+1
l ={}
for n in range(1,1000001):
    count = 1
    x = n
    while(x!=1):
        if x in l:
            count+= l[x]-1
            break
        if(x%2 == 0):
          x =even(x)
        else:
          x =odd(x)
    l[n] = count
        
keys = list(l.keys()) 
values = list(l.values())
index = values.index(max(values))
print(keys[index])
INFO