Cod sursa(job #148520)

Utilizator Sorin_IonutBYSorynyos Sorin_Ionut Data 4 martie 2008 14:16:39
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream.h>
#include <fstream.h>

#define IN "ciur.in"
#define OUT "ciur.out"
#define max 1024
#define maxim 2000005

ifstream fin(IN);
ofstream fout(OUT);

int N,sol[max];
char prim[maxim];
int cat;

void citire();
int alg();


int main()
{
 int i;

 citire();
  fin.close();

 cat=alg();

 fout<<cat<<endl;
 for(i=cat;i>=1;i--)
  fout<<sol[i]<<" ";
 fout<<endl;

 return 0;
}

void citire()
{
 fin>>N;
}

int alg()
{
 int i,j;
 int cnt=0;
 int n;

 for (i = 2; i <= N; ++i)
  prim[i]=1;

 for (i = 2; i <= N; ++i)
  if (prim[i])
  {
   ++n;
   for (j = i+i; j <= N; j += i)
    prim[j] = 0;
  }

 for (i = N; i > 1; --i)
  if (prim[i])
  {
   sol[++cnt] = i;
    if (cnt == 1000)
     break;
  }


 return cnt;
}