一、题目 求 1 ∼ n 1\sim n 1∼n之间素数个数。 2 ≤ n ≤ 1 0 11 2\leq n\leq 10^{11} 2≤n≤1011 二、解法 线性筛是 O ( n ) O(n) O(n)的,我们考虑在非线性时间内解决这个问题。 由于我们知道任何一个数都由至多1个大于 n \sqrt {n} n 的数组成,我们考虑用小于 n \sqrt{n} n 的筛出这些质数。 设 f [ i ] [ j ] f[i][j] f[i][j]为用前 i i i个质数筛