题目链接

题面:

题解:
从2开始连续几个自然数的乘积最大。
假设我们 2+3+4+…+k>=n 刚好成立。
我们设ans=2+3+4+…k
如果ans=n,我们直接输出乘积即可。
如果ans-n=1,那我们去掉2,令k+1
如果ans-n>1 假设 ans-n=p,那么我们去掉p即可。
因为需要大数,就用python写了。

def main():
    n=int(input())
    ans=0
    now=2
    a=[]
    
    while ans<n:
        ans=ans+now
        a.append(now)
        now=now+1
    if ans-n==1:
        a[0]=1
        a[-1]=a[-1]+1
    elif ans-n>1:
        a[ans-n-2]=1
    res=1
    for i in a:
        res=res*i
        if i!=1:
            print(i,end=" ")
            
    print("\n%d\n"%(res))

main()