Cod sursa(job #273754)

Utilizator petrecgClinciu Glisca Petre petrecg Data 8 martie 2009 23:10:48
Problema Ciurul lui Eratosthenes Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.36 kb
#include <stdio.h>
#include <math.h>
long i,j,k,n;char prim[100000];
int main()
{freopen("ciur.in","r",stdin);freopen("ciur.out","w",stdout);
 scanf("%ld",&n);
 k=1;
 for(i=3;i<=n;i+=2)
  {if(prim[i>>4]&(1<<((i>>1)&7)))continue;
    k++;for(j=i+i+i;j<=n;j+=i+i)prim[j>>4]|=1<<((j>>1)&7);
  }
 printf("%ld",k);fclose(stdin);fclose(stdout);
 return 0;
}