Pagini recente » Cod sursa (job #2193781) | Cod sursa (job #765390) | Cod sursa (job #986342) | Cod sursa (job #460361) | Cod sursa (job #463511)
Cod sursa(job #463511)
#include <cstdio>
const char FIN[] = "ciur.in", FOU[] = "ciur.out";
const int MAX = 1 << 17;
short V[MAX];
int N ;
int main ()
{
freopen ( FIN, "r", stdin );
freopen ( FOU, "w", stdout );
scanf("%d", &N);
for (int i = 1; ( i * i << 1 ) + ( i << 1 ) <= N; ++i)
{
if ( ( V[i >> 3] & ( 1 << ( i & 7 ) ) ) ) continue;
for (int j = ( i * i << 1 ) + ( i << 1 ); ( j << 1 ) + 1 <= N; j += ( i << 1 ) + 1)
V[j >> 3] |= ( 1 << ( j & 7 ) );
}
int sol = 1;
for (int i = 1; ( i << 1 ) + 1 <= N; ++i)
if ( ( V[i >> 3] & ( 1 << ( i & 7 ) ) ) == 0 )
sol++;
printf("%d\n", sol);
return 0;
}