Cod sursa(job #144629)

Utilizator Snavenportnespecificat Snavenport Data 27 februarie 2008 20:19:10
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream.h>

ifstream f("ciur.in");
ofstream g("ciur.out");

long n,nr;
char c[2000001];
int rez[1001];

void ciur()
{
     long i,j;
     for (i=2;i<=n;i++)
       if (c[i]==0)
         for (j=i+i;j<=n;j=j+i)
           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
     {
         j=0;
         for (i=n;i>=1 && nr1<=1000;i--)
           if (c[i]==0)
             {
             j++;
             rez[j]=i;
             }
         for (i=1000;i>=1;i--)
           g<<rez[i];    
     }
           
                 
         
}

int main()
{
    f>>n;
    ciur();
    g<<nr<<"\n";
    afisare();
}