Cod sursa(job #1143351)

Utilizator bpalaniciPalanici Bogdan bpalanici Data 15 martie 2014 15:06:08
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.46 kb
#include <cstdio>
#define N 2000001
#include <bitset>

using namespace std;
bitset <N> v;
int nr,n;
int main()
{
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);
    scanf("%d",&n);
    v[0]=1;v[1]=1;
    for(int i=4;i<=n;i+=2) {v[i]=1;}
    for(int i=3;i*i<=n;i+=2)
    {
        if(v[i]==0)
        {for(int i1=i*i;i1<=n;i1+=i) v[i1]=1;}
    }
    for(int i=2;i<=n;i++) if(v[i]==0) nr++;
    printf("%d",nr);

    return 0;
}