def collatz(num,i):
i =i + 1
if num%2 == 0:
return collatz(num//2,i)
elif num == 1:
return i
else:
return collatz((num+(num<<1) + 1),i) k = 0
j = 0 for i in range(666666,1000000):
temp = collatz(i,0)
if k < temp:
j,k = i,temp
print(j,k) print(j,k)
递归实现collatz计算。
使用num + num<<1 +1 替代3*num +1,提高一点点效率。
但是算完需要20S左右