用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++变量的类型
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。