Cod sursa(job #146844)

Utilizator mihai0110Bivol Mihai mihai0110 Data 2 martie 2008 11:47:05
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>
long nr,n;
char a[2000001];
long sol[1024];
void are()
{
	long i,j;
	for(i=2;i<=n;i++)
		if(!a[i])
			{
			nr++;
			for(j=i*i;j<=n;j+=i)
				a[j]=1;
			}
}
void ana()
{
	freopen("ciur.in","r",stdin);
	scanf("%ld",&n);
}
void mere()
{
	long i,nrp=0;
	freopen("ciur.out","w",stdout);
	printf("%ld\n",nr);

	for(i=n;i>=2;i--)
	{
		if(!a[i])
		if(nrp<1000)
		{
			nrp++;
			sol[nrp]=i;
		}
		else
		break;
	}
	for(i=nrp;i>=1;i--)
	printf("%ld ",sol[i]);
	printf("\n");
}
int main(void)
{
	ana();are();mere();
	return 0;
}