Pagini recente » Cod sursa (job #2787511) | Cod sursa (job #327391) | Cod sursa (job #799269) | Cod sursa (job #3001530) | Cod sursa (job #1317860)
#include <cstdio>
using namespace std;
#define MAX_N 2100000
inline int ciur( const int &N ) {
char ciur[ MAX_N >> 1 ];
int sol = 1;
int i, k, lim, j;
lim = N >> 1;
for( i = 1, k = 3; k * k <= N; ++i, k += 2 ) {
if( !ciur[ i ] ) {
++sol;
for( j = k * k >> 1; j <= lim; j += k )
ciur[ j ] = 1;
}
}
for( ; k <= N; ++i, k += 2 )
if( !ciur[ i ] )
++sol;
return sol;
}
FILE *f;
int main() {
int N;
f = fopen( "ciur.in", "r" );
fscanf( f, "%d", &N );
fclose( f );
f = fopen( "ciur.out", "w" );
fprintf( f, "%d\n", ciur( N ) );
fclose( f );
return 0;
}