Cod sursa(job #145024)

Utilizator DraStiKDragos Oprica DraStiK Data 28 februarie 2008 11:43:08
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<fstream>
using namespace std;
#define INPUTFILE "ciur.in"
#define OUTPUTFILE "ciur.out"
#define DIM 2000001
ifstream fin (INPUTFILE);
ofstream fout (OUTPUTFILE);
char a[DIM];
int b[1001],c;
int main ()
{
    long long i,j,n,k=0;
    fin>>n;
    for (i=2; i<=n; ++i)
    {
        if (!a[i])
        {
                  
                  k++;
                  for (j=2*i; j<=n; j+=i)
                      a[j]=1;
        }
    }
    fout<<sizeof(a)/1024<<" ";
    fout<<k<<"\n";
    if (k>1000)
        k=1000;
    for (i=n; i>=2; --i)
    {
        if (!a[i])
           b[++c]=i;
        if (c==k)
           break;
    }
    for (i=c; i>=1; --i)
        fout<<b[i]<<" ";
    return 0;
}