Pagini recente » Cod sursa (job #1505500) | Cod sursa (job #1097194) | Cod sursa (job #775300) | Cod sursa (job #1513928) | Cod sursa (job #463502)
Cod sursa(job #463502)
#include <cstdio>
#include <ctime>
const char FIN[] = "ciur.in", FOU[] = "ciur.out";
const int MAX = 1 << 17;
unsigned char 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;
}