U283443 简单的函数求和
题目背景
给一个简单的函数做求和,虽然不知道它的具体值,但是也有一些线索。
题目描述
对于函数 $f(x)$ 已知:
$$
\sum_{d|x}f(d)=x^3+3x^2+x \quad (d>0)
$$
其中,$d|x$ 的意思是,$d$ 可以整除 $x$, $d$ 是 $x$ 的因子。 那么上述等式的意思就是,对于 $x$ 的所有因子 $d$ (包括 $x$ 自己) ,他们的函数值求和为 $x^3+3x^2+x$。
以 $x = 4$ 为例,就有 $f(1)+f(2)+f(4)=4^3+3\times 4^2+4=116$
以 $x=6$ 为例,就有 $f(1)+f(2)+f(3)+f(6)=6^3+3\times 6^2+6=330$
针对简单的函数,我们要做的就是简单的函数求和,求解为 $F(n)$,其中
$$
F(n)=\sum_{i=1}^n f(i)
$$
由于这个数字可能大的离谱,所以我们只需要输出他对质数 $1,000,000,007$ 取模的结果即可。
输入格式
本题的每一个测试点**均为多组数据输入,请采用`EOF`判断结尾。**
每组数据 $1$ 行,包含一个正整数 $n$ 。
输出格式
对于每组数据,输出一行,为 $F(n)$ 对 $1,000,000,007$ 取模的值。
说明/提示
## 数据范围
对于所有的数据,保证每一个 $n$ 均为合法的**正整数**形式。
对于测试点 $01$,保证 $n \le 10^2$, 数据组数不大于 $100$。
对于测试点 $02$,保证 $n \le 10^4$, 数据组数不大于 $10000$。
对于测试点 $03$,保证 $n\le 10^6$, 数据组数不大于 $10000$。
对于测试点 $04,05,06, 07$,保证 $n \le 10^{9}$, 数据组数不大于 $30$。