Cod sursa(job #1006379)

Utilizator TwoOfDiamondsDaniel Alexandru Radu TwoOfDiamonds Data 6 octombrie 2013 22:06:11
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>

using namespace std;


int main()
{
	//variabile ce va fi citita
	unsigned int toRead;
	//numarul ce va fi afisat in fisierul de iesire
	unsigned int total = 0;
	//pointer ce va servi drept loc pt alocarea memoriei
	bool *ciur;

	//fisiere de intrare + iesire
	ifstream IN("ciur.in");
	ofstream OUT("ciur.out");

	//se citeste numarul din fisierul de intrare
	IN >> toRead;

	//memoria va fi alocata dinamic pt ciur
	ciur = new bool[toRead]();

	for (int i = 2; i <= toRead; i++)
	{
		//daca numarul nu este prim se sare peste el
		if (ciur[i]) continue;

		//daca numarul este prim va fi adaugat la total
		if(!ciur[i])
		{
			total++;
		}

		for (int j = i; j <= toRead; j += i)
		{
			ciur[j] = true;
		}
	}

	OUT << total << "\n";

	delete [] ciur;
	ciur = NULL;

	return 0;

}