任务
给定一个正整数N,求出[2, N]中的所有素数。
说明
数组valid[i]是否为素数。初始所有的valid[i]为true。从2开始从小到大开始枚举i,若valid[i] = true,则把从i^2开始的每一个i的倍数的valid赋为false。结束之后valid[i] = true的就是素数。
接口
- void getPrime(int n, int &tot, int ans[maxn])
- 复杂度: O(NlogN),O(N) 两种实现
- 输入: N 所需素数的范围
- 输出:
&tot 引用,素数总数
ans 素数表
代码
1 | // 素数筛选法 O(NlogN) |
有问题?发送 issues 给我~