Cod sursa(job #1893702)

Utilizator alexdmotocMotoc Alexandru alexdmotoc Data 25 februarie 2017 21:58:13
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
#include <cmath>

using namespace std;

static int const kMaxN = 2000005;

bool ciur[kMaxN];

int main() {
	ifstream f("ciur.in");
	ofstream g("ciur.out");

	int N, contor = 0;
	f >> N;

	for (int i = 2; i <= N; ++i) {
		if (ciur[i] == true) {
			continue;
		}

		bool prim = true;

		for (int d = 0; i < sqrt(i); ++d) {
			if (i % d == 0) {
				prim = false;
				break;
			}
		}

		if (prim == true) {
			contor += 1;
			ciur[i] = false;

			for (int multiplu = i * 2; multiplu <= N; multiplu += i) {
				ciur[multiplu] = true;
			}
		}
	}

	g << contor;

	return 0;
}