Pagini recente » Cod sursa (job #1142784) | Cod sursa (job #3224462) | Cod sursa (job #1424934) | Cod sursa (job #2281663) | Cod sursa (job #232244)
Cod sursa(job #232244)
#include <stdio.h>
#define dim 2000000/2/8+1
long n, nr, p[dim];
int main()
{
long i, j;
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
scanf("%ld\n", &n);
nr=1;
for (i=1; ((i*i)<<1)+(i<<1)<=n; i++)
{
if ((p[i>>3]&(1<<(i&7)))==0)
{
for (j=((i*i)<<1)+(i<<1); (j<<1)+1<=n; j+=(i<<1)+1)
{
p[j>>3]|=(1<<(j&7));
}
}
}
for (i=1; 2*i+1<=n; i++)
if ((p[i>>3]&(1<<(i&7)))==0) nr++;
printf("%ld\n", nr);
return 0;
}