整数分解
问题描述
将 3 分解成两个正整数的和, 有两种分解方法, 分别是 3=1+23=1+2 和 3=2+13=2+1 。注意顺序不同算不同的方法。
将 5 分解成三个正整数的和, 有 6 种分解方法, 它们是 1+1+3=1+2+2=1+1+3=1+2+2= 1+3+1=2+1+2=2+2+1=3+1+11+3+1=2+1+2=2+2+1=3+1+1 。
请问, 将 2021 分解成五个正整数的和, 有多少种分解方法?
答案提交
这是一道结果填空的题, 你只需要算出结果后提交即可。本题的结果为一 个整数, 在提交答案时只填写这个整数, 填写多余的内容将无法得分。
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
参考答案
(暴力法)
s = 0
for i in range(1,2018):
for j in range(1,2022-i):
for k in range(1,2022-i-j):
m = 2021-i-j-k
if m>=2:
s += (m-1)
else:
break
print(s)
(简便法 )
import math
s = 1
for i in range(2020,2016,-1):
s *= i
s /= math.factorial(4)
print(int(s))