数论分块
应用
数论分块用于快速计算形如以下公式的和式
\[\sum_{i=1}^n f(i)g(\lfloor \frac{n}{i} \rfloor)
\]
前提是 在\(O(1)\) 内计算出 \(f(r)-f(l)\) 或者已经处理出 \(f\) 的前缀和。
复杂度为 \(O(\sqrt{n})\)
数论分块结论
对于\(\lfloor \frac{n}{i} \rfloor\),一些连续的\(i\)的地方值相同,呈块状分布。
对于每一块,若起始下标是\(l\),则结束位置的下标是\(\lfloor \frac{n}{\lfloor \frac{n}{i} \rfloor} \rfloor\)
简单题目
1. 因数个数和
每次给一个x,问1到x的因数个数的和。