整除分块

整除分块

$$\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$

posted @ 2025-07-11 23:37  fyv233  阅读(9)  评论(0)    收藏  举报