PE
#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