从输出中打印出最大的数字(collat​​z 猜想-python)

Printing the largest number from the outputs (collatz conjecture-python)

我需要帮助打印多个输出中的最大数字。我该如何修改此代码才能做到这一点?

x = int(input("Enter a number : "))
while(x!=1):
    if(x%2==0):
        x  = x/2
        print("\n",x)
    else:
        x = 3*x+1
        print("\n",x)

当我输入“20”时,我得到了一个数字列表,我可以很容易地说 16 是输出中最大的。但是输入大的时候真的很难。我需要一个代码来从输出中打印出最大的数字

您可以创建一个 generator 来生成 Collat​​z 序列,然后使用 max() 函数找到最大的数:

def collatz_sequence(x):
    yield x

    while x > 1:
        x = x // 2 if x % 2 == 0 else 3 * x + 1
        yield x

print(max(collatz_sequence(5)))   # Output: 16