Cod sursa(job #632921)

Utilizator mihaibogdan10Mihai Bogdan mihaibogdan10 Data 12 noiembrie 2011 15:26:26
Problema Ciurul lui Eratosthenes Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include<fstream>
using namespace std;

unsigned int n;

int main(){
	ifstream fin("ciur.in"); fin >> n;
	unsigned int i, j, v[n/32 + 1], nr = 0;
	
	for (i = 0; i <= n/32 + 1; i++) v[i] = 0;
	
	for (i = 2; i*i <= n; i++)		
		if (! (v[i/32] & (1<<(i%32))))
			for (j = i * 2; j <= n; j+= i)
				v[j/32] |= (1<<(j%32));
	
	ofstream fout("ciur.out");
	for (i = 2; i <= n ; i++)
		if (!(v[i/32] & (1<<(i%32)))) nr++;
	fout<<nr<<"\n";
	fout.close();
	return 0;
}