Cod sursa(job #144584)

Utilizator igorPirnau Igor igor Data 27 februarie 2008 19:54:25
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include<fstream.h>

#define nmax 2000010

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

char a[nmax];
int n, i, nr, j, sol[1010], nrp;

int main()
{
    f>>n;
    f.close();
    
    for(i=2; i<=n; i++)
        if(!a[i]){
            nrp++;
            for(j=i+i; j<=n; j+=i) a[j]=1;
        }

    for(i=n; i>1 && nr<=1000 ; i--)
        if(!a[i]) sol[++nr]=i;

    g<<nrp<<'\n';
    if(nr>1000) nr=1000;
    for(i=nr; i>0; i--) g<<sol[i]<<' ';

    g.close();
    return 0;
}