Cod sursa(job #632917)
Utilizator | Mihai Bogdan mihaibogdan10 | Data | 12 noiembrie 2011 15:21:15 |
---|---|---|---|
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;
}