Cod sursa(job #2778959)

Utilizator RazvanMFRazvan RazvanMF Data 2 octombrie 2021 14:00:12
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.53 kb
#include <iostream>
#include <fstream>
#include <bitset>
using namespace std;

const int maxval = 2048576;
bool primes[maxval];

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

void Eratostene() {
	primes[0] = primes[1] = 1; //1 - nu e prim
	for (int i = 2; i * i <= maxval; i++) {
		if (!primes[i])
			for (int d = i * i; d <= maxval; d += i)
				primes[d] = 1;
	}

}

int main() {
	int n, prim = 0;
	cin >> n;
	Eratostene();
	for (int i = 1; i <= n; i++) {
		if (!primes[i]) prim++;
	}
	cout << prim;
}