用C++实现一个高效的素数筛选算法
文章标签
php连接mysql
一、素数筛选算法介绍
素数指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。因此,素数筛法指的是,通过筛选的方式找出指定范围内的素数。
常见的素数筛法有:Erastothenes筛、Sundaram筛、Euler筛、Atkin筛等。其中,Erastothenes筛是最常用、最简单的筛法,其基本思想是:先假设范围内所有数都是素数,然后从小到大循环,将每个素数的倍数都标记为合数,最后剩下的即为素数。
二、Erastothenes筛的实现
Erastothenes筛的具体实现如下:
#include
#include
#include
using namespace std;
int main(int argc, char** argv) {
int MAXN = 1000000;
bool* isPrime = new bool[MAXN + 1];
memset(isPrime, true, MAXN + 1);
isPrime[0] = isPrime[1] = false;
for (int i = 2; i 版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
上一篇:定义C++数组并进行基本操作 下一篇:如何判断C++变量的类型
code前端网


