Cod sursa(job #146548)
Utilizator | Data | 1 martie 2008 21:25:33 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.37 kb |
#include<stdio.h>
long n,i,a[2000100],l,j,s[1020];
int main()
{
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%ld",&n);
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);
for(i=0,j=n;((i<l)&&(i<=1000));--j) if(a[j]==0)s[++i]=j;
for(;i;--i)printf("%ld ",s[i]);
return 0;
}