Cod sursa(job #653373)

Utilizator VisuianMihaiMihai Visuian VisuianMihai Data 27 decembrie 2011 20:35:32
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<fstream>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
bool prim[2000010];
long int n;
int main()
{
	int i, j, nr = 0;
	fin >> n;
	for ( i = 2; i <= n; i++ )
	{
		if ( prim[i] == false ) // daca e prim;
		{
			j = i;
			while ( i*j <= n ) // se incepe marcarea multiplilor de la patratul numarului;
			{
				prim[i*j] = true; // numarul cu nr. de ordine i*j nu e prim;
				j++;
			}
			nr++; // daca e prim incrementam nr;
		}
	}
	fout << nr;
	fin.close();
	fout.close();
	return 0;
}