Cod sursa(job #203554)

Utilizator drag0shSandulescu Dragos drag0sh Data 17 august 2008 14:41:08
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
   #include <cstdio>  
   #include <cmath>  
   #include <bitset>  
   int main()  
   {  
       const int NMAX = 2000001;  
       FILE *f1, *f2;  
       std::bitset<NMAX> v;  
       int n, i, j, rasp = 1, incr, sq;  
       f1 = fopen("ciur.in", "r");  
       f2 = fopen("ciur.out", "w");  
       fscanf(f1, "%d", &n);  
       sq = sqrt(n);  
       for (i = 4; i <= n; i += 2) v[i] = 1;  
       for (i = 3; i <= sq; i += 2)   
           if (!v[i]) {  
               for (j = i * i; j <= n; j += i)  
                  v[j] = 1;  
           }  
       for (i = 3; i <= n; i += 2) if (!v[i]) ++rasp;  
       
       fprintf(f2, "%d\n", rasp);  
       fclose(f1);  
       fclose(f2);  
       return 0;  
   }