Cod sursa(job #459072)

Utilizator darrenRares Buhai darren Data 27 mai 2010 18:33:50
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.45 kb
#include<fstream>
#include<vector>
using namespace std;

int n;
int res;
vector<bool> c(2000000);

void ciur()
{
	for (int i = 3; i * i <= 2000000; i += 2)
		if (!c[i])
			for (int j = i * i; j <= 2000000; j += 2 * i)
				c[j] = true;
}

int main()
{
	ifstream fin("ciur.in");
	ofstream fout("ciur.out");
	fin >> n;
	ciur();
	
	if (n == 1)
		return 0;
	res = 1;
	for (int i = 3; i <= n; ++i)
		if (c[i])
			++res;
	fout << res;
}