Pagini recente » Cod sursa (job #2367440) | Cod sursa (job #2923722) | Cod sursa (job #2876404) | Cod sursa (job #369130) | Cod sursa (job #1317848)
#include <cstdio>
using namespace std;
#define MAX_N 2000000
FILE *f;
inline int ciur( const int &N ) {
char ciur[ MAX_N >> 1 ];
int count = 1, i, j, k, l;
k = 1;
for( i = 3; i * i <= N; i += 2 ) {
if( !ciur[ k ] ) {
++count;
l = ( i * i ) >> 1;
for( j = l << 1; j <= N; j += i ) {
ciur[ l ] = 1;
l += i;
}
}
++k;
}
for( ; i <= N; i += 2 ) {
if( !ciur[ k ] )
++count;
++k;
}
return count;
}
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;
}