Cod sursa(job #875477)

Utilizator howsiweiHow Si Wei howsiwei Data 10 februarie 2013 11:15:33
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.33 kb
#include <fstream>
#include <bitset>
using namespace std;

int main() {
	ifstream cin("ciur.in");
	ofstream cout("ciur.out");
	int n; cin >> n;
	bitset<2000001> sieve;
	for (int i=3,j; i<=n; ) {
		for (j=i+i+i; j<=n; j+=(i<<1))
			sieve.set(j);
		while ((i+=2)<=n && sieve[i]);
	}
	cout << n-n/2-sieve.count();//1 mark,2 not mark
	return 0;
}