Cod sursa(job #1135863)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 8 martie 2014 15:03:22
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include <cstdio>
#include <bitset>

#define Nmax 2000005

using namespace std;
int N;
bitset<Nmax> ciur;

int jmen()
{
    int i,j,nrp = 1; /// adik 2
    for(i = 1; ((i<<1)|1) <= N; ++i)
    if(ciur[((i<<1)|1)] == 0)
    {
        ++nrp;
        for(j = 1; ((i<<1)|1)*((j<<1)|1) <= N; ++j)
            ciur[((i<<1)|1)*((j<<1)|1)] = 1;
    }
    return nrp;
}

int main()
{
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);
    scanf("%d",&N);
    printf("%d",jmen());

    return 0;
}