Cod sursa(job #149197)

Utilizator lovelyanaAna Scutelnicu lovelyana Data 5 martie 2008 13:52:53
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <stdio.h>  
   #include <string.h>  
     #define NMAX 2000010  
	long n;  
	char ciur[NMAX];  
	long prime[1010];  
    int h;  
   long nr;  
     int main()  
   {  
      long i, j;  
       freopen("ciur.in", "r", stdin);  
	   freopen("ciur.out", "w", stdout);  
	   scanf("%ld", &n);  
    
       for(i = 2; i <= n; ++i)  
          if(ciur[i] == 0)  
			for(++nr, j = 2; i*j <= n; ++j)  
                  ciur[i*j] = 1;  
	
      for(i = n; i >= 2; --i)  
      {  
          if(!ciur[i])  
               prime[++h] = i;  
        if(h == 1000) break;  
      }  
      printf("%ld\n", nr);  
    
      while(h)  
       printf("%ld ", prime[h--]);  
	
       return 0;  
   }