Pagini recente » Cod sursa (job #691217) | Cod sursa (job #1213037) | Cod sursa (job #566393) | Cod sursa (job #755994) | Cod sursa (job #876371)
Cod sursa(job #876371)
#include <fstream>
#include <bitset>
using namespace std;
ifstream in("ciur.in");
ofstream out("ciur.out");
const int size = 2000000/2 + 1;
bitset<size> isComposite;
int sieve(int n)
{
int count = 1;
for (int i = 1; 2*i*i + 2*i <= n; i++)
{
if (isComposite[i] == 0)
{
for (int j = 2*i*i + 2*i; 2*j + 1 <= n; j += 2*i+1)
isComposite[j] = 1;
}
}
for (int i = 1; 2*i+1 <= n; i++)
{
if (isComposite[i] == 0) ++count;
}
return count;
}
int main()
{
int N; in >> N;
out << sieve(N);
return 0;
}