Sieve Of Eratosthenes



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include<bits/stdc++.h>

#define ll long long

#define MX 10000000

using namespace std;

 

bool status[MX];

int prime[MX];

void sive()

{

    int sq=sqrt(MX);

    status[0]=status[1]=1;

    for(int i=4;i<=MX;i+=2)

        status[i]=1;

    for(int i=3;i<=sq;i+=2){

        if(!status[i])

        {

            for(int j=i*i;j<=MX;j+=i)

                status[j]=1;

        }

    }

}

 

int main()

{

    ll n,x=-1;

    cin>>n;

    sive();

 

    for(int i=0;i<=n;i++){

        if(!status[i])

        prime[++x]=i;

    }

    for(int i=0;i<=x;i++)

        cout<<prime[i]<<" ";

    cout<<endl;

 

 

    return 0;

}

No comments

Theme images by Jason Morrow. Powered by Blogger.