Cod sursa(job #154842)

Utilizator AlxCojocaru Alexandru Alx Data 11 martie 2008 15:09:45
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.34 kb
#include <stdio.h>
long n;
char v[200000];
int main()
{
 freopen("ciur.in","r",stdin);
 freopen("ciur.out","w",stdout);
 scanf("%ld\n",&n);
 long prim=0,i,j;
 for (i=3;i<=n;i+=2)
 {
  if (v[i>>4]&(1<<((i>>1)&7)))
   continue;
  prim++;
  for (j=3*i;j<=n;j+=2*i)
   v[j>>4]|=1<<((j>>1)&7);
 }
 printf("%ld\n",prim+1);
 return 0;
}