def fun(nn):
a = [float('0') * 100 for _ in range(100)] # 保存分解后的数
b = []
k = 1
sum = 1
a[1] = 2
nn = nn - 2
while nn > a[k]:
k += 1
a[k] = a[k - 1] + 1
nn -= a[k]
if nn == a[k]: # 相等,最后的再加1
a[k] += 1
nn -= 1
for i in range(nn):
a[k - i] += 1
for j in range(1, k + 1):
sum *= a[j]
b.append(a[j])
print(b)
return sum
if __name__ == "__main__":
while True:
n = int(input("请输入要分解的数:"))
print(fun(n))
最优分解问题
最新推荐文章于 2021-05-08 18:23:32 发布