Cod sursa(job #145500)

Utilizator alexeiIacob Radu alexei Data 28 februarie 2008 21:20:30
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 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;
    
    scanf("%d",&n);
    
    for(i=2; i<=n; ++i){
          
       if( a[i]!='0'){
       sol[++aux]=i;
       
           for(j=i+i; j<=n; j+=i)
           a[j]='0';
           }
           
       } 
       
       printf("%d\n",aux);
       
   if( aux >=nmic){
       
       for(i=aux-nmic+1; i<=aux; ++i)
                         printf("%d ",sol[i]);
       }
  else
  {
   for(i=1; i<=aux; ++i)
   printf("%d ",sol[i]);
   }

   printf("\n");
   
   return 0;
}