数学题做题记录
以下题目方括号内的数字为题目难度
筛法
- 给定正整数 $n$,求 $1$ 到 $n$ 所有质数。
$(n \le 10^5)$ 「1.1」
$(n \le 2 \times 10^6)$ 「1.5」
$(n \le 2 \times 10^7)$ 「2.1」
做法一:对于每个数字用 $O(\sqrt{n})$ 的复杂度来判断这个数是否有不止两个约数,复杂度 $O(n \sqrt n)$。
做法二:如果找到一个数是质数,那么把这个质数的所有倍数(不含自己)标记为合数,以此类推,复杂度 $O(n \log \log n)$。
做法三:将做法二优化,保证一个质数只需筛掉一个合数,复杂度 $O(n)$。
做法四:欧拉筛法。

浙公网安备 33010602011771号