Code前端首页关于Code前端联系我们

用C++实现一个高效的素数筛选算法

terry 2年前 (2023-10-01) 阅读数 110 #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前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门