#107. 老师的考验

传统 1000 ms 256 MiB
标准 IO
文本比较 admin 标签

题目描述

lcl 的作业完成的非常出色,以至于引起了老师的怀疑,于是老师决定给他出一道难题来考验一下他,虽然这道题他也会做,但是他还是没有什么时间,所以他又把题目扔给了你。题目内容如下:

对于正整数 nn 的每个约数 dd 都有一个互补约数 n/dn/d

对于正整数 nn 的所有正约数 dd,记 f(n)f(n)ddnd\frac nd 的最大公约数之和,即

f(n)=dngcd(d, nd)f(n)=\sum_{d|n}gcd(d,\ \frac nd)

FFff 的和函数,即

F(k)=n=1kf(n)F(k)=\sum_{n=1}^kf(n)

例如:F(10)=32, F(1000)=12776F(10)=32,\ F(1000)=12776

题目要求为对于给定的 nn 请输出 F(n)F(n)的值。

输入格式

输入数据第一行包含一个数T(1T20)T(1\leq T\leq 20),表示测试数据组数。

对于每组测试数据,共一行,包含一个正整数 n(1n109)n(1\leq n\leq 10^9),意义如题目中所描述。

输出格式

对于每一组测试数据,输出一行,内容为 F(n)F(n) 的值。

样例

样例输入

2
10
1000

样例输出

32
12776