Cod sursa(job #144603)
Utilizator | Data | 27 februarie 2008 20:05:51 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.86 kb |
#include <fstream.h>
ifstream f("ciur.in");
ofstream g("ciur.out");
long n,nr;
char c[2000001];
void ciur()
{
long i,j;
for (i=2;i<=n;i++)
if (c[i]==0)
for (j=i+1;j<=n;j++)
if (j%i==0)
c[j]=1;
for (i=2;i<=n;i++)
if (c[i]==0)
nr++;
}
void afisare()
{
long i,nr1=0,j;
if (nr<=1000)
{
for (i=2;i<=n;i++)
if (c[i]==0)
g<<i<<" ";
}
else
{
i=2;
while (nr1!=nr-1000)
{
if (c[i]==0)
nr1++;
i++;
}
for (j=i;j<=n;j++)
if (c[j]==0)
g<<i<<" ";
}
}
int main()
{
f>>n;
ciur();
g<<nr<<"\n";
afisare();
}