Cod sursa(job #1006372)

Utilizator TwoOfDiamondsDaniel Alexandru Radu TwoOfDiamonds Data 6 octombrie 2013 21:57:29
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

using namespace std;

//vectorul ce va tine toate numerele ce for fi "date prin ciur"
int ciur[2000001];

int main()
{
	//variabile ce va fi citita
	unsigned int toRead;
	//numarul ce va fi afisat in fisierul de iesire
	unsigned int total = 0;

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

	//se citeste numarul din fisierul de intrare
	IN >> 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]++;
		}
	}

	OUT << total << "\n";

	return 0;

}