Pagini recente » Cod sursa (job #3270356) | Cod sursa (job #1887082) | Cod sursa (job #2261111) | Cod sursa (job #6214) | Cod sursa (job #965033)
Cod sursa(job #965033)
//BEGIN CUT
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
//END CUT
struct Sieve {
size_t upper_limit, nr_primes;
vector<bool> prime;
Sieve(size_t limit) : upper_limit(limit), nr_primes(1), prime(limit, true) {
prime[0] = prime[1] = false;
for (size_t i = 3; i*i <= upper_limit; i += 2)
if (prime[i])
for (size_t j = i*i; j <= upper_limit; j += 2*i)
prime[j] = false;
for (size_t i = 3; i <= upper_limit; i += 2)
if (prime[i]) nr_primes++;
}
};
//BEGIN CUT
int main() {
ifstream fin ("ciur.in");
ofstream fout ("ciur.out");
int n;
fin >> n;
Sieve sieve(n);
fout << sieve.nr_primes << endl;
fout.close();
return 0;
}
//END CUT