Cod sursa(job #728368)

Utilizator zmeulAlex Gherghisan zmeul Data 28 martie 2012 17:59:46
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.52 kb
/* http://infoarena.ro/problema/ciur */
#include <fstream>
#include <cstring>

using std::ifstream;
using std::ofstream;

int main() {
	ifstream in("ciur.in");
	ofstream out("ciur.out");
	unsigned n, i, j, k = 0;
	unsigned char *ciur;
	
	in >> n;
	ciur = new unsigned char[n + 1];
	std::memset(ciur, 1, (n + 1) * sizeof(unsigned char));
	for(i = 2; i <= n; ++i) {
		if(ciur[i]) {
			++k;
			for(j = i + i; j <= n; j += i)
				ciur[j] = 0;
		}
	}
	
	out << k;
	in.close();
	out.close();
	
	return 0;
}