Cod sursa(job #187628)

Utilizator Mishu91Andrei Misarca Mishu91 Data 4 mai 2008 21:14:49
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include <cstdio>
#include <bitset>
#define MAX_N 2000000

using namespace std;

int N;

void ciur()
{
    int cnt = 1, M = N >> 1;
    bitset<(MAX_N >> 1)> V;

    for(int i = 3; i<= N; i += 2)
    {
        if(V[i >> 1]) continue;
        for(int j = i + (i >> 1); j <= M; j += i)
                V[j] = 1;
        ++ cnt;
    }
    printf("%d\n",cnt);
}

int main()
{
    freopen("ciur.in","rt",stdin);
    freopen("ciur.out","wt",stdout);
    scanf("%d",&N);
    ciur();
}