Cod sursa(job #338541)

Utilizator pykhNeagoe Alexandru pykh Data 5 august 2009 22:59:43
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>

const char in[]="ciur.in";
const char out[]="ciur.out";
const int maxN=1000003;

bool prim[maxN];

int main()
	{
 int i, j, n, nr = 1;
 freopen(in,"r",stdin);
 scanf("%d", &n);
   for (i = 1; ((i * i) << 1) + (i << 1) <= n; ++i) {  
     if (prim[i] == false) {  
       for (j = ((i * i) << 1) + (i << 1); (j << 1) + 1 <= n; j += (i << 1) + 1) {  
         prim[j] = true;  
       }  
     }  
   }  
   for (i=1; 2 * i + 1 <= n; ++i)   
       if (prim[i] == false) ++nr;  
	freopen(out,"w",stdout);
   printf("%d\n",nr);
   return 0;
}