Cod sursa(job #1202160)

Utilizator vasile_pojogaPojoga Vasile vasile_pojoga Data 27 iunie 2014 09:37:14
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include <fstream>
#include <cstring>

using namespace std;

ifstream fin("ciur.in");
ofstream fout("ciur.out");

bool p[2000005];
int n;

void solve();
int countPrimes();

int main()
{
	fin>>n;
	solve();
	fout<<countPrimes();
	return 0;
}

void solve()
{
	memset(p,true,sizeof(p));
	for(int i=2;i<=n;i++)
	{
		if(p[i])
		{
			for(int j=i+i;j<=n;j+=i)
			{
				p[j] = false;
			}
		}
	}
}

int countPrimes()
{
	int primes = 0;
	for(int i=2;i<=n;i++)
	{
		if(p[i])
		{
			primes++;
		}
	}
	return primes;
}