Cod sursa(job #144654)

Utilizator RobytzzaIonescu Robert Marius Robytzza Data 27 februarie 2008 20:36:20
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <fstream.h>
int n,prime[2000100];
void gen_prime() {
  
    prime[n] = 1;
    for (long d = 3; d < n; d+=2) {
	prime[d - 1] = 1;
	if (prime[d] == 0)
	    for (long v= 2; v*d < n; v++)
                prime[d * v] = 1;   
    }   
    prime[2] = 0;
}

int main ()
{
    ifstream fin ("ciur.in");
    ofstream fout ("ciur.out");
    fin>>n;

   int sol[1010],nr=0;
   gen_prime();
   for (int i=n;i>1;i--)
      if (prime[i]==0)
      {
	 sol[nr++]=i;
	 if (nr>1000)
	    break;
      }
      nr--;
   while (nr)
   {
      fout<<sol[nr]<<" ";
      nr--;
   }
   fin.close();
   fout.close();
   return 0;
}