Cod sursa(job #906580)
| Utilizator | Data | 6 martie 2013 22:00:42 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <fstream>
#include <math.h>
using namespace std;
ifstream f("ciur.in");
ofstream g("ciur.out");
long N,m,re,i,prim,d;
int main()
{
f>>N;
m=sqrtf(N);
int v[N+1];
for (i=2;i<=N;i++) v[i]=0;
int x[m+1];
for (i=2;i<=m;i++)
{prim=1;
for (d=2; d<=sqrtf(i) && prim ;d++) { if (i%d==0) prim=0;}
if (prim) {g << i << " ";}
}
for (i=2;i<=m;i++) {re=0; while (re<N) {re=re+i; v[re]=1;}}
for (i=1;i<=N;i++) { if (!v[i]) g << i << " ";}
f.close();
g.close();
return 0;
}
