线性时间计算逆元
for (int i = 2; i <= n; i++) {
inv[i] = MOD - (MOD / i * inv[MOD % i] % MOD) % MOD;
}
线性时间计算阶乘逆元
//先计算出n!的逆元
for (int i = n - 1; i >= 0; i--) {
inv[i] = inv[i + 1] * (i + 1) % MOD;
}
1-n的LCM
对于1-n中所有数的lcm,其应该等于1-n中每个质数p的以p为底数对于n的对数次幂的累积
$\ lcm = \prod p^{log_{p}{n}} $
log下取整