Cod sursa(job #146906)

Utilizator horiama1Mania Horia horiama1 Data 2 martie 2008 13:28:43
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
    #include<stdio.h>  
	
    int i, j, nr, q[1005], n;  
    char v[2000001];  
    inline int min(int a, int b){  
	if (a < b)  
           return a;  
       return b;  
}  
   int main()  
   {  
       freopen("ciur.in", "rt", stdin);  
       freopen("ciur.out", "wt", stdout);  
       scanf("%d", &n);  
         
      for (i = 2; i*i <= n; i ++)  
           if (!v[i])  
              for (j = 2*i; j <= n; j += i)  
                   v[j] = 1;  
         
       for (i = n; i > 1; i --)  
           if (!v[i]){  
               nr ++;  
            if (nr <= 1000)  
              q[nr] = i;  
           }  
         
       printf("%d\n", nr);  
       nr = min(1000, nr);  
      for (i = nr; i; i --)  
           printf("%d ", q[i]);  
         
       return 0;  
   }