Cod sursa(job #520068)

Utilizator lcodrutlucianLazar Codrut-Lucian lcodrutlucian Data 7 ianuarie 2011 13:05:59
Problema Ciurul lui Eratosthenes Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <fstream>
#include <iostream>
using namespace std;

const int MAX = 2*1000*1000;

int n,c;
bool p[MAX];

int main() {
	ifstream in("ciur.in");
	ofstream out("ciur.out");

	in >> n;
	p[0]=false; p[1]=false; p[2]=true;
	n<2?c=0:c=1;

	for(int i=3;i<=n;i+=2){
		p[i]=true;
		for(int j=3;p[i]&&j<i/2;j+=2){
			if(i%j==0) p[i]=false;
		}
		if(p[i]) ++c;
	}

	out << c << "\n";

	in.close();
	out.close();
	return 0;
}