Pagini recente » Cod sursa (job #2530737) | Cod sursa (job #2262639) | Cod sursa (job #1324293) | Cod sursa (job #1725368) | Cod sursa (job #2499974)
#include <cstdio>
#include <bitset>
#include <vector>
using namespace std;
const int NMAX = 2000505;
int N;
vector<int> pr;
short int lp[NMAX];
int main() {
freopen("ciur.in", "r", stdin);
// freopen("ciur.out", "w", stdout);
scanf("%d", &N);
pr.reserve(150000);
for (int i = 2; i <= N; i++) {
int currentLowestPrime = lp[i];
if (lp[i] == 0) {
pr.push_back(i);
currentLowestPrime = i;
}
for (int j = 0; j < pr.size() && i * pr[j] <= N && pr[j] <= currentLowestPrime; j++) {
lp[i * pr[j]] = pr[j];
}
}
printf("%d\n", (int) pr.size());
return 0;
}