整除分块
整除分块
求
$$\sum \limits_{d=1}^{n} \lfloor \frac{n}{d} \rfloor$$$n \leq 10^{18}$c
注意到 $\lfloor \frac{n}{d} \rfloor$ 对应 $d$ 的取值范围,所以我们只需要枚举 $\lfloor \frac{n}{d} \rfloor$ 即可。
设上一个 $\lfloor \frac{n}{d} \rfloor$ 的取值范围为 $[l', r']$ 则 这次的范围为 $[l, r]$。
由于 $d$ 是连续的,所以 $l = r'+1$
对于 $r$ ,我们可以这样得出:
$r$ 所对应的 $d$,正是满足 $\lfloor \frac{n}{d} \rfloor = x$ 的最大的正整数。
即 $r = \lfloor \cfrac{n}{\lfloor \frac{n}{l} \rfloor} \rfloor$

浙公网安备 33010602011771号