Cod sursa(job #144609)

Utilizator Snavenportnespecificat Snavenport Data 27 februarie 2008 20:09:12
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=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
     {
         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();
}