Cod sursa(job #187605)

Utilizator Mishu91Andrei Misarca Mishu91 Data 4 mai 2008 19:09:12
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <cstdio>
#include <vector>

using namespace std;

long N;

void ciur()
{
    long cnt = 1, M = (N - 1) >> 1;
    vector <bool> V(M);

    for(long i = 3; i<= N; i += 2)
    {
        if(V[i >> 1]) continue;
        for(long 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("%ld",&N);
    ciur();
}