整除分块学习笔记

对于 \(\left\lfloor\dfrac{n}{i}\right\rfloor\) 只有最多 \(2 \sqrt{n}\) 种取值 然后将它们进行分块处理
证明:
image

分块操作:
image

代码实现:

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;
	}
posted @ 2023-06-24 20:51  Steven24  阅读(16)  评论(0编辑  收藏  举报