Cod sursa(job #632919)

Utilizator mihaibogdan10Mihai Bogdan mihaibogdan10 Data 12 noiembrie 2011 15:22:55
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.44 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];
	
	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)))) fout<<i<<" ";
	return 0;
}