Cod sursa(job #187607)

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

using namespace std;

int N;

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

    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();
}