说明
“x 人血书”的过程可以看成一个函数 f(x):
有一个 x0 的分数。重复以下步骤直到这个分数为 1:
- 分子 +1。
- 如果这个分数可以约分,约分到最简形式。
现在小 D 给了你 T 组数据,每组数据都是给定 n,求在 1≤x≤n 的情况下 f(x) 的最大操作次数。
但是他太菜了,不会,你能帮帮他吗?
输入格式
第一行一个正整数 T。
接下来 T 行,每行一个正整数 n。
输出格式
共 T 行,每行一个整数 s 表示在 1≤x≤n 的情况下 f(x) 的最大操作次数。
5
1
2
5
8
114514
1
2
5
7
114493
提示
样例解释
f(1)=1,f(2)=2,f(3)=3,f(4)=3,f(5)=5。
我也想把更大的 f(x) 列出来,但是地方不够了。
数据范围
对于全部数据,1≤T≤5×105,1≤n≤2×106。
Subtask 中没填的部分表示和全部数据的范围一样。
| 子任务编号 |
T 的范围 |
n 的范围 |
特殊性质 |
分值 |
| Subtask 1 |
T≤3 |
n≤10 |
|
10 |
| Subtask 2 |
T≤5 |
n≤103 |
30 |
| Subtask 3 |
|
|
n 为质数 |
10 |
| Subtask 4 |
n≤5×105 |
|
20 |
| Subtask 5 |
|
30 |