Pagini recente » Clasament oni_2013_xi_xii | Clasament rar44 | Cod sursa (job #2668188) | Cod sursa (job #3183986) | Cod sursa (job #2668073)
#include <bits/stdc++.h>
using namespace std;
int main() {
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
int mxN = 2e6/16 + 1;
char primes[mxN]{};
memset(primes, 0, sizeof(primes));
int n;
scanf("%d", &n);
int res = 1;
for (int i = 1; (i << 1) + 1 <= n; i++) {
if (primes[(i >> 3)] & (1 << (i & 7))) continue;
for (int j = 3*i + 1; (j << 1) + 1 <= n; j += (i << 1) + 1) {
primes[j >> 3] |= (1 << (j & 7));
}
}
for (int i = 1; (i << 1) + 1 <= n; i++) {
res += (primes[i >> 3] & (1 << (i & 7))) == 0;
}
printf("%d\n", res);
}