CF1957E Carousel of Combinations

题目描述

给定一个整数 $n$。函数 $C(i,k)$ 表示从集合 $\{1,2,\ldots,i\}$ 中选出 $k$ 个不同的数,并将它们排列成一个环的不同方法数 $^\dagger$。 求下式的值: $$ \sum\limits_{i=1}^n \sum\limits_{j=1}^i \left( C(i,j) \bmod j \right) $$ 这里,$x \bmod y$ 表示 $x$ 除以 $y$ 的余数。 由于答案可能非常大,请输出其对 $10^9+7$ 取模的结果。 $^\dagger$ 在环形排列中,如果一个序列可以通过旋转变成另一个序列,则认为它们是相同的。例如,$[1,2,3]$ 和 $[2,3,1]$ 在环中是等价的。

输入格式

第一行包含一个整数 $t$($1 \leq t \leq 10^5$)——表示测试用例的数量。 每个测试用例仅包含一行,一个整数 $n$($1 \le n \le 10^6$)。

输出格式

对于每个测试用例,输出一行一个整数,表示所求表达式对 $10^9+7$ 取模的结果。

说明/提示

在第一个测试用例中,$C(1,1) \bmod 1 = 0$。 在第二个测试用例中: - $C(1,1)=1$(排列为:[1]); - $C(2,1)=2$(排列为:[1],[2]); - $C(2,2)=1$(排列为:[1,2]); - $C(3,1)=3$(排列为:[1],[2],[3]); - $C(3,2)=3$(排列为:[1,2],[2,3],[3,1]); - $C(3,3)=2$(排列为:[1,2,3],[1,3,2])。 因此,总和为 $\left(C(1,1) \bmod 1\right) + \left(C(2,1) \bmod 1\right) + \left(C(2,2) \bmod 2\right) + \left(C(3,1) \bmod 1\right) + \left(C(3,2) \bmod 2\right) + \left(C(3,3) \bmod 3\right) = 4$。 由 ChatGPT 4.1 翻译