Cod sursa(job #866612)

Utilizator paulbotabota paul paulbota Data 28 ianuarie 2013 14:58:28
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
#include <cstdio>
#include <cstring>

#define MAXSIZE 2000000

int main()
{
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);
    bool p[MAXSIZE];
    std::memset(p,true,sizeof(p));
    int N,i,j,nr=1;
    scanf("%d",&N);
    for(i=2;((i*i)<<1) + (i<<1)<=N;i++)
        if(p[i]==true)
            for(j=((i*i)<<1) + (i<<1);(j<<1)+1<=N;j+=(i<<1)+1)
                p[i]=false;
    for(i=2;(i<<1)+1<=N;++i)
        if(p[i]==true)
            ++nr;
    printf("%d\n",nr);
    return 0;
}