Cod sursa(job #652756)

Utilizator Mihnea22Mihai Mihnea Mihnea22 Data 26 decembrie 2011 10:37:01
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <fstream>
#include <math.h>
using namespace std;
fstream f("ciur.in",ios::in);
fstream g("ciur.out",ios::out);
void bool0 (bool v[], int n)
{
	for (n--;n>-1;n--)
		v[n]=0;
}

int nrnrprime (int n)
{
	//declarare si initializare
	bool c[2000000];
	bool0(c,n);
	//
	int nr;
	nr=0;
	if (n<2)
		return nr;
	nr++;
	//
	int i,j;
	for (i=3;i<=n;i=i+2)
		if (c[i]==0)//daca e prim
			{
			nr++;//mareste numarul
			for (j=i*i;j<=n;j=j+i)
				c[j]=1;//marcheaza multiplii
			}
	return nr;
}

int main ()
{
	int n;
	f>>n;
	g<<nrnrprime(n);
}