Cod sursa(job #216494)

Utilizator costin22Muraru Costin costin22 Data 24 octombrie 2008 18:44:24
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
    #include <stdio.h>  
    const int N=2000005;  
bool c[N];  
      
    void ciur(int n)  
    {  
        int i,j;  
       for(i=2;i*i<=n;++i)  
          if(c[i]==false)//daca i este prim,marchez ca nefiind primi multiplii lui  
             for(j=i*i;j<=n;j+=i)  
                 c[j]=true;  
   }  
     
   int numar(int n)  
{  
       int i,nr=0;  
       for(i=2;i<=n;++i)  
           if(!c[i])//<=> c[i]==false  
              ++nr;  
       return nr;  
   }  
     
  int main()  
 {  
     int x;  
      FILE *f1,*f2;  
       f1=fopen("ciur.in","r");  
       f2=fopen("ciur.out","w");  
      fscanf(f1,"%d",&x);  
     ciur(x);  
       fprintf(f2,"%d",numar(x));  
	fclose(f1);  
       fclose(f2);  
       return 0;  
}