Cod sursa(job #1402070)

Utilizator Alexa2001Alexa Tudose Alexa2001 Data 26 martie 2015 12:02:21
Problema Ciurul lui Eratosthenes Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include <cstdio>

using namespace std;
int nr,a[100009],n,i,j;
int main()
{
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);

    scanf("%d",&n);

    for(i=1;((i*i)<<1) +(i<<1)<n; ++i)
    if( ( a[i>>3]& (1<<(i&7))) ==0)
    for(j= ((i*i)<<1) +(i<<1); 1+(j<<1)<=n;j+=(i<<1)+1)
    a[j>>3]|=(1<<(j&7));

    nr=1;
    for(i=1;(i<<1)+1 <n;++i)
    if( (a[i>>3]& (1<<(i&7)))==0 ) ++nr;
    printf("%d\n",nr);
    return 0;
}