Cod sursa(job #149787)

Utilizator andyciupCiupan Andrei andyciup Data 6 martie 2008 05:32:17
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.5 kb
#include<stdio.h>
#include<string.h>
#define N 2000009
int main(){
	freopen("ciur.in", "r", stdin);   
    freopen("ciur.out", "w", stdout);
	long n;
	scanf("%d" ,&n);
	long i,j, prime[1000];
	int k,h=0; 
	char v[N];	
	k=0;
	for(i=2; i<=n; i++)
		if (v[i]==0){
			for (k++, j=2; j*i<=n; j++)
			v[j*i]=1;}
	for (i=n; i>=2; i--)
	{
		if (!v[i])
			h++;
		prime[h]=i;
		if(h==1000) break;
	}
	printf("%d\n", k);
	for (i=h; i>0; i--)
		printf("%d ", prime[i]);
	
		
	
	
	
	return 0;
}