整除分块/数论分块
参考:
定义
计算 ∑ i = 1 n ⌊ n i ⌋ \sum_{i=1}^{n}\lfloor\frac{n}{i}\rfloor ∑i=1n⌊in⌋ ,打表时间复杂度是 O ( n ) O(n) O(n) 。显然存在区间 [ l , r ] [l, r] [l,r], ⌊ n l ⌋ = ⌊ n r ⌋ \lfloor \frac{n}{l}\rfloor = \lfloor \frac{n}{r} \rfloor ⌊ln⌋=⌊rn⌋ , 由于区间内值相同,可通过区间长度和区间内的值加速计算。
分块的数量级在 n \sqrt{n} n :
当 i ≤ n i \le\sqrt{n} i≤n 时, 假设 n i \frac{n}{i} in 各不相同,那么最多有 n \sqrt{n} n 个值。
当 i > n i>\sqrt{n}