Pagini recente » Clasament brasov_city_challenge | Cod sursa (job #2006670) | Cod sursa (job #2649097) | Cod sursa (job #1763566) | Cod sursa (job #471008)
Cod sursa(job #471008)
#include <cstdio>
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;
}