Cod sursa(job #641638)

Utilizator AnaTudorTudor Ana Maria Mihaela AnaTudor Data 28 noiembrie 2011 23:12:00
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <cstdio>
using namespace std;

unsigned char v[2000000/8+1];
int N,nr;

int main ()
{
    freopen ("ciur.in","r",stdin);
    freopen ("ciur.out","w",stdout);

    scanf ("%d",&N);

    for (int i=2; i<=N; ++i)
        if (!(v[i>>3]&(1<<(i&7))))
        {
            ++nr;
            for (int j=i+i; j<=N; j+=i)
                v[j>>3]=v[j>>3]|(1<<(j&7));
        }

    printf ("%d",nr);
    return 0;
}