Pagini recente » Cod sursa (job #1885776) | Cod sursa (job #1354627) | Cod sursa (job #2876078) | Cod sursa (job #1873219) | Cod sursa (job #1615158)
#include <fstream>
using namespace std;
const int MAX_N = 2000000;
typedef unsigned long long u64;
u64 T[(MAX_N >> 6) + 1];
int main() {
ifstream fin("ciur.in");
ofstream fout("ciur.out");
int N; fin >> N;
fin.close();
int i, ret = 1;
for (i = 3; i * i <= N; i += 2) {
if ((T[i >> 6] & (1ULL << (i & 63))) == 0) {
++ ret;
for (int j = i * i; j <= N; j += 2 * i) {
T[j >> 6] |= (1ULL << (j & 63));
}
}
}
while (i < N) {
ret += ((T[i >> 6] & (1ULL << (i & 63))) == 0);
i += 2;
}
fout << ret << '\n';
fout.close();
return 0;
}