曾在上次AK杯之时,Serein便发现了五边形数的具体定义,但 Serein并不满足于此,从中进行深究,发现了可以根据五边形数定理快速计算分拆数。
将正整数 分解为若干个正整数之和,称为分拆。设 代表正整数 有多少种不同的分拆方案。例如 ,因为 。
将无限多个点按照下图方式摆放,形成无限多个正五边形(下图仅展示四个):
定义第 个五边形数是图中第 小的五边形边上和内部所包含的点数(特别规定最小的五边形是一个点)。例如,图中,前四个五边形数分别是 。以第三个五边形为例,它包含的点是红色、黄色和绿色的点,统计得共 个。
已知五边形数为 ,定义广义五边形数为 。即第 个广义五边形数为第 个五边形数,且第 个广义五边形数总是比第 个广义五边形数多 。根据五边形数定理,可以用如下公式快速计算分拆数:
特别地。其中 为 的下取整。即 。例如 。
给定 ,请你计算并输出 。
输入
输入一行一个整数 。
输出
输出一行一个整数,代表 。保证给定范围内计算过程不会超出 C/C++ int 所能表示的范围。
样例
标准输入 复制文本 |
0 |
标准输出 复制文本 |
1 |
标准输入 复制文本 |
4 |
标准输出 复制文本 |
5 |
标准输入 复制文本 |
66 |
标准输出 复制文本 |
2323520 |
来源
2023 天梯赛选拔赛 (重现)