Cod sursa(job #145507)

Utilizator alexeiIacob Radu alexei Data 28 februarie 2008 21:30:29
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<stdio.h>
#define nmax 2000000
#define nmic 1000
char a[nmax];
int sol[nmic];
int main()
{
    
    
    freopen("ciur.in","r",stdin);
    freopen("ciur.out","w",stdout);
    
    int n,aux=0,i,j,solt=0;
    
    scanf("%d",&n);
    
    for(i=2; i<=n; ++i){
          
       if( a[i]!='0'){
       ++solt;
           for(j=i+i; j<=n; j+=i)
           a[j]='0';
           }
           
       } 
       
       printf("%d\n",solt);
       
       for(i=n; i>=2; --i)
         if(a[i]!='0'){
         sol[++aux]=i;
          if( aux == nmic )
          break;
         }
       
    for(i=aux; i>=1; --i)
    printf("%d ",sol[i]);   
    printf("\n");   
       
       
       
   return 0;
}