SP26073 DIVCNT1 - Counting Divisors

题目描述

定义 $\sigma _0(n)$ 表示 $n$ 的正因子个数。 例如 $\sigma_0(1)=1,\sigma_0(2)=2,\sigma_0(4)=3$。 定义 $$\displaystyle S_1(n)=\sum_{i=1}^n\sigma_0(i)$$ 给定 $N$,求 $S_1(N)$。

输入格式

第一行包含一个整数 $T$ 为测试点组数。 接下来 $T$ 行,每行包含一个整数 $N$。

输出格式

对于每个 $N$,输出一行,包含对应的 $S_1(N)$。

说明/提示

### 输入样例解释 - $S_1(3) = \sigma_0(1) + \sigma_0(2) + \sigma_0(3) = 1 + 2 + 2 = 5$。 ### 测试点信息 共有 $6$ 个输入文件。 - **输入 #1**: $1 \le N \le 100000$,时间限制 $2$ 秒。 - **输入 #2**: $1 \le T \le 120$,$1 \le N \le 10^{15}$,时间限制 $15$ 秒。 - **输入 #3**: $1 \le T \le 60$,$1 \le N \le 10^{16}$,时间限制 $15$ 秒。 - **输入 #4**: $1 \le T \le 25$,$1 \le N \le 10^{17}$,时间限制 $15$ 秒。 - **输入 #5**: $1 \le T \le 10$,$1 \le N \le 10^{18}$,时间限制 $15$ 秒。 - **输入 #6**: $1 \le T \le 5$,$1 \le N < 2^{63}$,时间限制 $15$ 秒。 > 我(指 [Min_25](https://www.spoj.com/users/min_25))的 C++ 解法对输入 #2 到 #6 每个大约运行 $1.3$ 秒。 ### 注意 - **$O(\sqrt{n})$ 的解法很可能无法通过**。 - 预期解法的运行时间约为 $O(n^{1/3} \log n)$。 - **答案可能 $\ge 2^{64}$**。