Pagini recente » Cod sursa (job #1971828) | Cod sursa (job #3277167) | Ciorna | Cod sursa (job #20722) | Cod sursa (job #2215466)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("ciur.in");
ofstream fout ("ciur.out");
int nprime, n;
///vector <int> primes;
///int least [2000009];
bool f [2000009];
///void E1 (void){
/// for (int i = 2; i <= n; i ++){
/// if (least [i] == 0) {
/// primes.push_back (i);
/// least [i] = i;
/// }
/// for (int j = 0; primes [j] <= least [i] && i * primes [j] <= n && j < primes.size (); j ++) {
/// if (least [i * primes [j]] != 0)least [i * primes [j]] = min(least [i * primes [j]], primes [j]);
/// else least [i * primes [j]] = primes [j];
/// }
/// }
/// for (int i = 2; i <= n; i ++)
/// if (least [i] == i)nprime ++;
///}
void E2 (void){
for (int i = 4; i <= n; i += 2)f [i] = 1;
for (int i = 3; i * i <= n; i += 2)
if (f [i] == 0)
for (int j = i * i; j <= n; j += 2 * i)
f [j] = 1;
for (int i = 2; i <= n; i ++)nprime += !f [i];
}
int main (void){
fin >> n;
E2 ();
fout << nprime;
return 0;
}