Pagini recente » Cod sursa (job #1539774) | Cod sursa (job #2396994) | Cod sursa (job #2574107) | Cod sursa (job #1592604) | Cod sursa (job #2304466)
#include <bits/stdc++.h>
using namespace std;
bitset<2000005> a;
int n;
/// a[i] = 0, daca i - prim
/// = 1, daca i nu e prim
int main()
{
cout << sizeof(a)/(1024.0 * 1024.0);
int i, j, n;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
fin >> n;
a[0] = a[1] = 1;
/// marchez cu 1 numerele pare >= 4
for (i = 4; i <= n; i += 2)
a[i] = 1;
/// numerele impare:
/// n log*(n)
for (i = 3; i * i <= n; i += 2)
if (a[i] == 0) /// i - prim, dar multiplii sai nu
for (j = i * i; j <= n; j = j + 2 * i)
a[j] = 1;
j = 0;
for (i = 1; i <= n; i++)
if (a[i] == 0) j++;
fout << j << "\n";
fout.close();
fin.close();
return 0;
}