Pagini recente » Cod sursa (job #2098012) | Cod sursa (job #1106298) | Cod sursa (job #1099291) | Cod sursa (job #2129227) | Cod sursa (job #1170161)
#include <cstdio>
#include <vector>
static const int NMAX=2000005;
std::vector<unsigned char> V(NMAX,0);
int ciur(int limit)
{
int i,j,ii,nrprime=1; // il includ pe 2
for (i=3;i<=limit;i+=2)
{
if (!(V[i>>4]&(1<<((i>>1)&7))))
{
++nrprime;
for (j=i+(ii=i<<1);j<=limit;j+=ii) V[j>>4]|=1<<((j >> 1)&7);
}
}
return nrprime;
}
int main()
{
FILE *in=fopen("ciur.in","rt"),*out=fopen("ciur.out","wt");
int n;
fscanf(in,"%d",&n);
fclose(in);
fprintf(out,"%d\n",ciur(n));
fclose(out);
}