Pagini recente » Cod sursa (job #2514961) | Cod sursa (job #2712176) | Cod sursa (job #2850483) | Cod sursa (job #2850590) | Cod sursa (job #326481)
Cod sursa(job #326481)
#include<stdio.h>
#include<math.h>
#define nmax 2000000
#define dmax (nmax>>4)+1
unsigned char p[dmax];
long n;
void read()
{
scanf("%ld",&n);
}
void ciur()
{
long i,j;
long lim;
lim=sqrt(n)+1;
for (i=1;(i<<1)+1<=lim;i++)
{
if (!(p[i>>3] & (1<<(i&7))))
for (j=(i<<1)+(i*i<<1);(j<<1)+1<=n;j=j+(i<<1)+1)
{
p[j>>3]=p[j>>3] | (1<<(j&7));
}
}
}
void numara()
{
long i,nr=1;
for (i=3;i<=n;i+=2)
{
if (!(p[i>>4] & (1<<((i>>1)&7))))
nr++;
}
printf("%ld",nr);
}
int main()
{
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
read();
ciur();
numara();
return 0;
}