Pagini recente » Cod sursa (job #2106929) | Cod sursa (job #2057591) | Cod sursa (job #878845) | Cod sursa (job #883008) | Cod sursa (job #831548)
Cod sursa(job #831548)
#include <fstream>
using namespace std;
ifstream in("ciur.in");
ofstream out("ciur.out");
const int SIZE = 2000000/2+1;
bool composite[SIZE];
int sieve(int n)
{
int count = 1;
for (int i = 1; (2*i*i + 2*i) <= n; ++i) {
if(composite[i] == false) {
for (int j = 2*i*i + 2*i; 2*j + 1 <= n; j += 2*i + 1)
composite[j] = true;
}
}
for (int i = 1; 2*i + 1 <= n; ++i) {
if (composite[i] == false) ++count;
}
return count;
}
int main()
{
int N;
in >> N;
out << sieve(N);
return 0;
}