Cod sursa(job #144573)
Utilizator | Data | 27 februarie 2008 19:42:14 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.41 kb |
#include <stdio.h>
#define N 2000012
char sol[1024],v[N]={0};
int main()
{
int n,nr=0,i,j;
freopen("ciur.in", "r",stdin);
freopen("ciur.out", "w",stdout);
scanf("%d", &n);
for(i=2;i<=n;++i)
for(j=i+i;j<=n;j+=i)
v[j]=1;
for(i=n;i>=2;--i)
{if(v[i]==0) {sol[nr]=i; nr++;}
if(nr>1000) break;}
printf("%d\n",nr);
for(i=nr-1;i>=0;--i)
printf("%d ", sol[i]);
return 0;
}