整除分块

Dn={ni:1in, iN+}D_n = \left\{ \left\lfloor \frac{n}{i} \right\rfloor : 1 \le i \le n,\ i \in \mathbb{N}^+ \right\}

这个 DnD_n 就是所有可能的取值集合 相关性质:

  1. |DnD_n| \leq 2n\sqrt{n}
  2. 每一个块的左右端点,l=nd+1+1indl=\lfloor \frac{n}{d+1} \rfloor +1 \leq i \leq \lfloor \frac{n}{d} \rfloor

相关实现: 枚举每一个整除分块(DiD_i)$的区间

for(int l = 1; l <= n; l = r + 1){
int cnt = (n / l);
if(cnt < k) break;
r = (n / cnt);
}