Pagini recente » Cod sursa (job #2709234) | Cod sursa (job #1142490) | Cod sursa (job #922638) | Cod sursa (job #2450012) | Cod sursa (job #2646503)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("ciur.in");
ofstream fout ("ciur.out");
const int DIM = 2000000 + 5;
vector < bool > f(DIM, true);
vector < int > prime;
vector < int > total(DIM);
void Ciur(int n)
{
for(int i = 2; i <= n; ++i) {
if(f[i] == true) prime.push_back(i), total[i] = total[i - 1] + 1;
else total[i] = total[i - 1];
for(int j = 0; j < prime.size() && i * prime[j] <= n; ++j) {
f[i * prime[j]] = false;
if(i % prime[j] == 0) break;
}
}
}
int main()
{
int n;
fin >> n;
Ciur(n);
fout << total[n];
return 0;
}