Cod sursa(job #2935904)

Utilizator VladNANegoita Vlad-Andrei VladNA Data 7 noiembrie 2022 17:44:00
Problema Ciurul lui Eratosthenes Scor 70
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;
int lp[NMAX];

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] = i, ++cnt;

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

			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;
}