Cod sursa(job #145262)

Utilizator thekrisserzaharia cristian thekrisser Data 28 februarie 2008 17:29:19
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
   #include <stdio.h>  
     
   int N, n, sol[1024], cnt;  
   char prim[2000005];  
     
   int main(void)  
   {  
       int i, j;  
         
       freopen("ciur.in", "r", stdin);  
       freopen("ciur.out", "w", stdout);  
    
       scanf("%d", &N);  
       for (i = 2; i <= N; ++i)  
           prim[i] = 1;  
       for (i = 2; i <= N; ++i)  
           if (prim[i])  
           {  
               ++n;  
               for (j = i+i; j <= N; j += i)  
                   prim[j] = 0;  
           }  
         
       printf("%d\n", n);  
       for (i = N; i > 1; --i)  
           if (prim[i])  
           {  
               sol[++cnt] = i;  
               if (cnt == 1000)  
                   break;  
           }  
     
       for (i = cnt; i; --i)  
           printf("%d ", sol[i]);  
       printf("\n");  
         
       return 0;  
   }