Cod sursa(job #2935907)

Utilizator VladNANegoita Vlad-Andrei VladNA Data 7 noiembrie 2022 17:45:34
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include <bits/stdc++.h>
#define NMAX 2000005

using namespace std;

vector <int> primes;
bitset <NMAX> lp;

int make_sieve(int n) {
	int cnt = 0;
	for (int i = 2; i <= n; ++i) {

		if (lp[i] == 0)
			primes.push_back(i), lp[i] = 1, ++cnt;

		for (int j = 0; j < (int)primes.size() && i * 1LL * primes[j] <= n; ++j) {
			lp[i * primes[j]] = 1;

			if (i % primes[j] == 0)
				break;
		}
	}

	return cnt;
}
 
int main() {

	freopen("ciur.in", "r", stdin);
	freopen("ciur.out", "w", stdout);

	int n;
	cin >> n;

	cout << make_sieve(n) << '\n';
	return 0;
}