Cod sursa(job #638784)

Utilizator mihaibogdan10Mihai Bogdan mihaibogdan10 Data 21 noiembrie 2011 16:55:49
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.43 kb
#include<cstdio>
#include<bitset>
using namespace std;
FILE *in = fopen("ciur.in", "r"), *out = fopen("ciur.out", "w");

bitset <2000000> ciur;

int main(){
	ciur.set();
	int n;	
	fscanf (in, "%d", &n);
	register int i, j, nr = 0;
	
	for (i = 2; i < n/2; i++){
		if (ciur[i] == 1)
			for (j = i*2; j <= n; j += i) ciur[j] = 0;
	}
	
	for (i = 2; i <= n; i++)
		if (ciur[i]) nr++;
	
	fprintf(out, "%d\n", nr);
	return 0;
}