Pagini recente » Cod sursa (job #2492818) | Cod sursa (job #956080) | Cod sursa (job #2768314) | Cod sursa (job #1445057) | Cod sursa (job #1360308)
#include<cstdio>
#include<string>
#include<bitset>
#include<vector>
using namespace std;
#ifdef HOME
const string inputFile = "input.txt";
const string outputFile = "output.txt";
#else
const string problemName = "ciur";
const string inputFile = problemName + ".in";
const string outputFile = problemName + ".out";
#endif
const int NMAX = 2000000 + 5;
int N;
bitset<NMAX> viz;
vector<int> P;
void ciur() {
int i, j, p;
P.push_back(2);
for(i = 1, j = 3; j * j <= N; i++, j += 2)
if(!viz[i]) {
P.push_back(j);
for(p = j * j / 2; 2 * p + 1 <= N; p += j)
viz[p] = 1;
}
for(; j <= N; i++, j += 2)
if(!viz[i])
P.push_back(j);
}
int main() {
freopen(inputFile.c_str(), "r", stdin);
freopen(outputFile.c_str(), "w", stdout);
scanf("%d", &N);
ciur();
printf("%d\n", P.size());
return 0;
}