Cod sursa(job #2300175)

Utilizator batabtroBatalan Vlad batabtro Data 10 decembrie 2018 22:16:55
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.66 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("ciur.in");
ofstream fout("ciur.out");

int N, prime[1000000], np;
bitset<2000010> b;

void ciur()
{
    if(N<2)
        return;
    for(int i=4; i <= N; i+=2)
    {
        b[i] = 1;
    }
    for(int i=3; i*i<=N; i+=2)
    {
        if(!b[i])
        {
            for(int j=3*i; j<=N; j=j+2*i)
                b[i*j] = 1;
        }
    }
    prime[++np] = 2;
    for(int i=3; i<=N; i+=2)
        if(b[i] == 0)
            prime[++np] = i;
}

int main()
{
    fin >> N;
    ciur();
    for(int i=1; i<=np; i++)
    {
        fout << prime[i] << ' ';
    }
    return 0;
}