Cod sursa(job #3231548)

Utilizator ClassicalClassical Classical Data 27 mai 2024 08:48:44
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#include <bits/stdc++.h>

using namespace std;

const int N = (int) 2e6 + 7;
bitset<N> is;

int main() {
#ifdef INFOARENA
	freopen ("ciur.in", "r", stdin);
	freopen ("ciur.out", "w", stdout);
#endif

	is[2] = 1;
	for (int i = 3; i < N; i += 2) {
		is[i] = 1;
	}
	for (int i = 3; i * i < N; i += 2) {
		if (is[i]) {
			for (int j = i * i; j < N; j += 2 * i) {
				is[j] = 0;
			}
		}
	}
	
	int n;
	cin >> n;
	int nr = 0;
	for (int i = 1; i <= n; i++) {
		nr += is[i];
	}
	cout << nr << "\n";

	return 0;
}