Pagini recente » Cod sursa (job #859844) | Cod sursa (job #459813) | Cod sursa (job #1184868) | Cod sursa (job #1600029) | Cod sursa (job #631085)
Cod sursa(job #631085)
#include <cstdio>
using namespace std;
const int MAX_N = 100002;
char sievel[ MAX_N ];
int N;
int getTheNumber()
{
int i, j, number = 1;
for( i = 1 ; ( ( i * i ) << 1 ) + ( i << 1 ) <= N ; i++ )
if( sievel[ i >> 3 ] & ( 1 << ( i & 7 ) ) )
continue;
else
for( j = ( ( i * i ) << 1 ) + ( i << 1 ) ; ( j<< 1 ) + 1 <= N ; j += ( i << 1 ) + 1 )
sievel[ j >> 3 ] |= ( 1 << ( j & 7 ) ) ;
for( i = 1 ; 2 * i + 1 <= N ; ++i )
{
if( sievel[ i >> 3 ] & ( 1 << ( i & 7) ) )
continue;
number ++;
}
return number;
}
int main()
{
freopen( "ciur.in", "r", stdin );
freopen( "ciur.out", "w", stdout );
scanf( "%d", &N );
printf( "%d\n", getTheNumber() );
fclose(stdin);
fclose(stdout);
return 0;
}