Cod sursa(job #652756)
#include <fstream>
#include <math.h>
using namespace std;
fstream f("ciur.in",ios::in);
fstream g("ciur.out",ios::out);
void bool0 (bool v[], int n)
{
for (n--;n>-1;n--)
v[n]=0;
}
int nrnrprime (int n)
{
//declarare si initializare
bool c[2000000];
bool0(c,n);
//
int nr;
nr=0;
if (n<2)
return nr;
nr++;
//
int i,j;
for (i=3;i<=n;i=i+2)
if (c[i]==0)//daca e prim
{
nr++;//mareste numarul
for (j=i*i;j<=n;j=j+i)
c[j]=1;//marcheaza multiplii
}
return nr;
}
int main ()
{
int n;
f>>n;
g<<nrnrprime(n);
}