Cod sursa(job #306601)

Utilizator ucc_5Usurelu Catalin ucc_5 Data 21 aprilie 2009 15:41:49
Problema Ciurul lui Eratosthenes Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream.h>
#include <math.h>

ifstream f("ciur.in");
ofstream g("ciur.out");

long n;
char p[2001];

void citire ()
{  f>>n;
   f.close ();
}
                                 
long nr_prime ()
{  long i,j,aux=sqrt(n);
   long nr=1;
   for (i=3; i<=aux; i+=2)
   if (p[i]==0)
    { nr++;
      for (j=i+i+i; j<=n; j+= i<<1)
       p[j]=1;
    }
   for (; i<=n; i+=2)
    if (p[i]==0)
     nr++;
   return nr;
}

int main ()
{ citire ();
  g<<nr_prime ();
  g.close ();
  return 0;
}