Cod sursa(job #2740635)

Utilizator muiepulicimatacutactu muiepulici Data 13 aprilie 2021 17:45:44
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.59 kb
#include <iostream>
#include <fstream>

bool ciur[2000001];

int gen_ciur(int n) {
	ciur[0] = ciur[1] = true;

	int i, j;

	for (i = 4; i <= n; i += 2)
		ciur[i] = true;

	for (i = 3; i * i <= n; i += 2) {
		if (ciur[i])
			continue;

		for (j = i * i; j <= n; j += i << 1)
			ciur[j] = true;
	}

	int prime = 1;

	for (i = 3; i <= n; i += 2) {
		if (!ciur[i])
			++prime;
	}

	return prime;
}

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

	int N;
	fin >> N;

	fout << gen_ciur(N);

	fin.close();
	fout.close();

	return 0;
}