Cod sursa(job #163267)

Utilizator n_lichkingSentes Norbert n_lichking Data 21 martie 2008 20:58:39
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
/* ciurul lui eratosthene */
#include<stdio.h>
#include<math.h>
FILE *f=fopen("ciur.in","r");
FILE *g=fopen("ciur.out","w");
long n,v[20000];
int main()
{
 fscanf(f,"%ld",&n);

  long i,k;
  k=1;
  v[k]=2;
  
  if(n>2)
   { int sw,j;
   for(i=3;i<=n;i+=2)
  {
    j=1; sw=1;
   while(j<=k&&v[j]<=sqrt(i))
       if(i%v[j]==0)
       {sw=0;break;}
	else ++j;

   if(sw)
     v[++k]=i;
   }
   }
   else if(n<2)
        k=0;

fprintf(g,"%ld",k);
fcloseall();

return 0;
}