对于 [1, n] 的数,对于每个数,标记它与已有素数的乘积非素, 并判断其是否是已有素数的因子.

可以证明如果是已有素数的因子那么一定会被遍历到并被标记。例如某个合数x, x = kp其中p为一个素因子, 因为k < xk一定被遍历过,在那时x已经被标记过了遂结束。

时间和空间复杂度在 O(n), 这是因为每个数最多会被遍历一次