筛法求素数

#include <iostream>
#include <cstring>
using namespace std;

void FindPrime(bool *a,int n,int k)
{
    for(int i = 2;i <= n;i++)
        if(i%k == 0)
        a[i] = 0;
    for(int i = 2;i<=n;i++)
    if(a[i] == 1){
            cout<<i<<endl;
        FindPrime(a,n,i);
    }
    return;
}

int main()
{
    int n;
    cin>>n;
    bool a[n+2];
    memset(a,1,sizeof(a));
    cout<<2<<endl;
    FindPrime(a,n,2);
    return 0;
}

 

posted @ 2018-03-27 16:57  Nikki_o3o  阅读(178)  评论(0编辑  收藏  举报