Cod sursa(job #676361)

Utilizator nautilusCohal Alexandru nautilus Data 9 februarie 2012 01:04:53
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<fstream>
using namespace std;
#define NMAX 2000010

int n,nr=1;
bool p[NMAX];

void read()
{
 ifstream fin("ciur.in");
 fin>>n;
 fin.close();
}

void ciur()
{
 int i,j;
 for (i=1; (i<<1)+1 <= n; ++i)
	 if ( ! p[i] )
		{
		 nr++;
		 for (j=3*i+1; (j<<1)+1 <= n; j += (i<<1)+1)
			 p[j] = 1;
		}
}

void write()
{
 ofstream fout("ciur.out");
 fout<<nr<<'\n';
 fout.close();
}

int main()
{
 read();
 ciur();
 write();
 return 0;
}