Cod sursa(job #187589)

Utilizator Mishu91Andrei Misarca Mishu91 Data 4 mai 2008 18:56:30
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.49 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) >> 1]) continue;
        for(long j =i + ((i - 1) >> 1); j <= M; j += i)
                V[j] = 1;
        ++ cnt;
    }
    printf("%ld\n",cnt);
}

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