Cod sursa(job #810090)

Utilizator petiVass Peter peti Data 9 noiembrie 2012 17:28:22
Problema Ciurul lui Eratosthenes Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <cmath>
using namespace std;


int main(){
	ifstream ifs("ciur.in");
	ofstream ofs("ciur.out");
	unsigned int N,nr=1;
	ifs>>N;
	unsigned int sqn=sqrt(N);
	vector<bool> v(N/2,false);
	
	for(int i=3;i<=N;i+=2){
		if(v[(i+1)/2]==false){
			nr++;
			if(i<sqn){
				for(int j=i+i+i;j<=N;j+=2*i){
					v[(j+1)/2]=true;
				}
			}
		}
	}
	ofs<<nr;
	return 0;
}