Pagini recente » Cod sursa (job #1685549) | Cod sursa (job #2854136) | Cod sursa (job #1453464) | Cod sursa (job #596006) | Cod sursa (job #1702990)
#include <fstream>
using namespace std;
int urm[100010], prec[100010];
bool prim[10001]; /// 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;
}