Pagini recente » Cod sursa (job #2679951) | Cod sursa (job #1352321) | Cod sursa (job #1850862) | Cod sursa (job #2588339) | Cod sursa (job #2721409)
#include <fstream>
#include <iostream>
#define N 2000000
using namespace std;
ifstream fin( "ciur.in" );
ofstream fout( "ciur.out" );
int neprim[N + 1];
void ciur( int n ) {
neprim[0] = neprim[1] = 0;
for ( int d = 4; d <= n; d += 2 )
neprim[d] = 1;
for ( int d = 3; d * d <= n; d += 2 ) {
if ( !neprim[d] ) {
for ( int nr = d * d; nr <= n; nr += d )
neprim[nr] = 1;
}
}
}
void sumpart( int v[], int n ) {
for ( int i = 2; i <= n; i ++ )
neprim[i] = neprim[i - 1] + 1 - neprim[i];
}
int main() {
int n;
fin >> n;
ciur( n );
sumpart( neprim, n );
fout << neprim[n] << "\n";
}