Pagini recente » Cod sursa (job #1669045) | Cod sursa (job #659957) | Cod sursa (job #2222488) | Cod sursa (job #2157848) | Cod sursa (job #1321560)
#include <cstdio>
using namespace std;
#define BSIZE 65536
#define NMAX 2000007
int sol,i,N,j,p;
bool prim[NMAX];
char buffer[BSIZE];
int readInt()
{
int number=0,sgn=1;
while (!('0'<=buffer[p] && buffer[p]<='9'))
{
if (buffer[p]=='-') sgn=-1;
if (p==BSIZE-1)
{
fread(buffer,1,BSIZE,stdin);
p=0;
} else ++p;
}
while ('0'<=buffer[p] && buffer[p]<='9')
{
number=number*10+buffer[p]-'0';
if (p==BSIZE-1)
{
fread(buffer,1,BSIZE,stdin);
p=0;
} else ++p;
}
return sgn*number;
}
int main()
{
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
fread(buffer,1,BSIZE,stdin);
N=readInt();
for (i=2;i*i<=N;++i)
if (!prim[i])
{
for (j=2*i;j<=N;j+=i)
prim[j]=true;
}
for (i=2;i<=N;++i)
sol+=(!prim[i]);
printf("%d\n",sol);
return 0;
}