Cod sursa(job #144799)

Utilizator mithyPopovici Adrian mithy Data 27 februarie 2008 23:09:07
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>
#define NMax 2000005

int N, n, sol[1024], cnt;  
char prim[NMax];  
   
int main()  
{  
	int i, j;  
	       
	freopen("ciur.in", "r", stdin);  
	freopen("ciur.out", "w", stdout);  
	
	scanf("%d", &N); 

	for (i=2; i<=N; ++i)  
		if ( !prim[i] )  
		{  
			++n;  
			for (j=i+i; j<=N; j+=i)  
				prim[j] = 1;  
		}  
	      
	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;  
}