#CF1957E. 循环排列组合数
循环排列组合数
E. 循环排列组合数
每次测试的时间限制:2.5 秒
每次测试的内存限制:256 兆字节
题目描述
给定一个整数 。函数 表示从集合 中选出 个不同的数,并将它们排成一个圆环† 的不同方式的数量。
请计算
$
\sum_{i=1}^{n} \sum_{j=1}^{i} \left( C(i, j) \bmod j \right).
$
这里 表示 除以 的余数。
由于这个结果可能非常大,请输出它对 取模的值。
† 在圆环排列中,如果两个序列可以通过旋转相互得到,则认为它们是相同的。例如, 和 在圆环意义下是等价的。
输入格式
第一行包含一个整数 ()——测试用例的数量。
每个测试用例只有一行,包含一个整数 ()。
输出格式
对于每个测试用例,输出一行一个整数,表示所求表达式对 取模后的结果。
示例
输入
4
1
3
6
314159
输出
0
4
24
78926217
说明
在第一个测试用例中,。
在第二个测试用例中:
- (排列为:);
- (排列为:,);
- (排列为:);
- (排列为:,,);
- (排列为:,,);
- (排列为:,)。
总和为
$
(C(1,1) \bmod 1) + (C(2,1) \bmod 1) + (C(2,2) \bmod 2) + (C(3,1) \bmod 1) + (C(3,2) \bmod 2) + (C(3,3) \bmod 3) = 4.
$