SP20173 DIVCNT2 - Counting Divisors (square)

题目描述

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

输入格式

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

输出格式

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

说明/提示

### 输入样例解释 - $S_2(3) = \sigma_0(1^2) + \sigma_0(2^2) + \sigma_0(3^2) = 1 + 3 + 3 = 7$。 ### 测试点信息 共有 $6$ 个输入文件。 - **输入 #1**: $1 \le N \le 10000$,时间限制 $1$ 秒。 - **输入 #2**: $1 \le T \le 800$,$1 \le N \le 10^8$,时间限制 $20$ 秒。 - **输入 #3**: $1 \le T \le 200$,$1 \le N \le 10^9$,时间限制 $20$ 秒。 - **输入 #4**: $1 \le T \le 40$,$1 \le N \le 10^{10}$,时间限制 $20$ 秒。 - **输入 #5**: $1 \le T \le 10$,$1 \le N \le 10^{11}$,时间限制 $20$ 秒。 - **输入 #6**: $T = 1$,$1 \le N \le 10^{12}$,时间限制 $20$ 秒。 > 我(指 [Min_25](https://www.spoj.com/users/min_25))的 C++ 解法总运行时间为 $5.3$ 秒。 **源代码大小限制为 $6$ KB。**