整除分块学习笔记
对于 \(\left\lfloor\dfrac{n}{i}\right\rfloor\) 只有最多 \(2 \sqrt{n}\) 种取值 然后将它们进行分块处理
证明:
分块操作:
代码实现:
for (int i = 1; i <= n; i = lst + 1) {
if (k / i != 0) lst = min(n, k / (k / i));
else lst = n;
block[++cnt].l = i, block[cnt].r = lst;
}