Cod sursa(job #147283)

Utilizator taloibogdanTaloi Bogdan Cristian taloibogdan Data 2 martie 2008 19:08:21
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include<stdio.h>
#include<string.h>
long n,i,l=0,j,s[1024];
char a[2000010];
int main()
{
 freopen("ciur.in","r",stdin);
 freopen("ciur.out","w",stdout);
 scanf("%ld",&n);
 for(i=1;i<=n+1;++i)a[i]=0;
 for(i=2;i<=n;++i)
    if(a[i]==0)
      {++l;
       for(j=i+i;j<=n;j+=i)  a[j]=1;
      }
 printf("%ld\n",l);
 i=0;
 for(j=n;j>1;--j)
    if(j>1)
      if(a[j]==0)
	if((i<1000)&&(i<=l))
	  s[++i]=j;
		       else
	  break;
 for(j=i;j;--j)printf("%ld ",s[j]);
 printf("\n");
 return 0;

}