Pagini recente » Cod sursa (job #817464) | Cod sursa (job #2127989) | Cod sursa (job #1038740) | Cod sursa (job #594889) | Cod sursa (job #1702991)
#include <fstream>
using namespace std;
int urm[2000010], prec[2000010];
bool prim[2000010]; /// 1 -> meprim
int main()
{
ifstream in("ciur.in");
int p, q;
int n;
in >> n;
for (int i = 1; i <= n + 1; i++) {
urm[i] = i + 1;
prec[i] = i - 1;
}
for (p = 2; p * p <= n; p = urm[p]) {
q = p;
while (q <= n) {
int x = p * q;
while (x <= n) {
prim[x] = 1;
urm[prec[x]] = urm[x];
prec[urm[x]] = prec[x];
x *= p;
}
q = urm[q];
}
}
int r = 0;
for (int i = 2; i <= n; i++) {
if (!prim[i])
r++;
}
ofstream out("ciur.out");
out << r;
in.close();
out.close();
return 0;
}