Cod sursa(job #377344)

Utilizator ChallengeMurtaza Alexandru Challenge Data 24 decembrie 2009 02:36:27
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include <fstream>

using namespace std;

const char InFile[]="ciur.in";
const char OutFile[]="ciur.out";

const long int MAXSIZE=2000006;
char *p = new char[MAXSIZE];

long int n;

long int ciur(long int n) {
	long int nr=1;
	for(register long int i=3;i<=n;i+=2){
		if(p[i]==0){
			++nr;
			for(register long int j=i+i+i;j<=n;j+=i<<1){
				p[j]=1;
			}
		}
	}
	return nr;
}


int main(){
	ifstream fin(InFile);
	fin>>n;
	fin.close();
	ofstream fout(OutFile);
	fout<<ciur(n);
	fout.close();
	return 0;
}