Cod sursa(job #1590959)

Utilizator sebii_cSebastian Claici sebii_c Data 5 februarie 2016 17:45:27
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include <fstream>
#include <vector>

using namespace std;

vector<int> sieve(int n) {
    vector<bool> is_prime(n + 1, true);
    vector<int> result;
    
    is_prime[0] = is_prime[1] = false;
    for (int i = 2; i <= n; ++i) {
	if (!is_prime[i])
	    continue;
	result.push_back(i);

	if (i * (long long) i > n)
	    continue;
	for (int j = i * i; j <= n; j += i)
	    is_prime[j] = false;
    }

    return result;
}

int main() {
    ifstream fin("ciur.in");
    ofstream fout("ciur.out");

    int n; fin >> n;
    auto result = sieve(n);
    fout << result.size() << endl;

    return 0;
}