Pagini recente » Cod sursa (job #1846622) | Monitorul de evaluare | Cod sursa (job #1234415) | Cod sursa (job #959730) | Cod sursa (job #2721432)
#include <fstream>
#include <iostream>
#define N 2000000
using namespace std;
ifstream fin( "ciur.in" );
ofstream fout( "ciur.out" );
char 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;
}
}
}
int sumpart( char v[], int n ) {
int ans = 0;
for ( int i = 2; i <= n; i ++ )
ans += 1 - neprim[i];
return ans;
}
int main() {
int n;
fin >> n;
ciur( n );
fout << sumpart( neprim, n ) << "\n";
}