Fermat的多边形数定理指出,每个正整数都可以表示为最多 多边形的和。这意味着每个正整数都可以表示为最多三个三角形,四个正方形,五个五角形等的总和。您的任务是取一个正整数和一个整数,并输出相加为角整数。
第个角整数,其中和可以用两种方法定义。非数学-Y方式是个 -gonal数可以构造为正多边形与两侧,各有长度的。例如,对于(三角数):
请参阅此处以获取具有更大示例。
math-y定义是通过使用的公式,它得出第个角数:
这是在维基百科页面给出这里。
输入项
两个正整数和,条件为。您可以用您的语言以最自然的表示形式输入这些整数(十进制,一进制,教堂数字,整数值浮点数等)。
输出量
整数列表,最大长度为,其中L的总和等于x,L中的所有整数都是s-角整数。同样,整数可以用您的语言以自然表示形式输出,并带有任何不同的,一致的分隔符(因此,十进制输出使用非小数字符,一进制输出使用不同的字符等)。
规则
- 输入或输出将永远不会超出您语言的整数限制
- 不必订购
- 如果有多个可能的输出,则任何一个或全部都可以接受
- 这是代码高尔夫球,因此以字节为单位的最短代码获胜
测试用例
x, s => L
1, s => 1
2, s => 1, 1
5, 6 => 1, 1, 1, 1, 1
17, 3 => 1, 6, 10
17, 4 => 1, 16
17, 5 => 5, 12
36, 3 => 36
43, 6 => 15, 28
879, 17 => 17, 48, 155, 231, 428
4856, 23 => 130, 448, 955, 1398, 1925
x=17, s=5
可以输出5,12,0,0,0
而不是仅输出5,12
?
Q
在提交的内容中添加一个?