Cod sursa(job #144585)

Utilizator floflowfloflofloflofloflo floflow Data 27 februarie 2008 19:55:15
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 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;  
}