题目 1084: 用筛法求之N内的素数

Posted lvyi-19325

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题目 1084: 用筛法求之N内的素数相关的知识,希望对你有一定的参考价值。

 技术图片 

 

类型:有关素数的基础算法

思路:埃氏筛选

AC代码:

技术图片
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAX_N=10000000;
int prime[MAX_N];
bool is_prime[MAX_N];
int p;

void sieve(int n)
{
    p=0;
    for(int i=0;i<=n;i++) is_prime[i]=true;
    is_prime[0]=is_prime[1]=false;
    for(int i=2;i<=n;i++)
    {
        if(is_prime[i])
        {
            prime[p++]=i;
            for(int j=2*i;j<=n;j+=i) is_prime[j]=false;
        }
    }
    
}

int main()
{    
    int n;
    cin>>n;
    sieve(n);
    for(int i=0;i<p;i++)    cout<<prime[i]<<endl;
    return 0;
}
View Code

 

以上是关于题目 1084: 用筛法求之N内的素数的主要内容,如果未能解决你的问题,请参考以下文章

c语言中用筛选法求素数

JD 题目1040:Prime Number (筛法求素数)

JD 题目1040:Prime Number (筛法求素数)

孪生素数(用筛法求素数)

用C++求50~100内的素数,具体问题如下

筛法求素数