更多是一种分块的思维,相同的 $\left[\frac{n}{i}\right]$ 连续出现,考虑分块,依次计算出相同部分的贡献。整除分块思路整理。
对每一个区间,左端点为 l
时,右端点最大为 n / (n / l)
。
问题一
求 $\sum\limits_{i=1}^{k}\left[\frac{n}{i}\right],\ (n\leq10^{14})$
1 | void solve(){ |
问题二
求 $\sum\limits_{i=1}^{k}n\%i,\ (n\leq10^{14})$
$$\sum\limits_{i=1}^{k}n\%i=\sum\limits_{i=1}^{k}n-i\times\left[\frac{n}{i}\right]=kn-\sum\limits_{i=1}^{k}i\times\left[\frac{n}{i}\right]$$
1 | void solve(){ |