Cod sursa(job #148178)
| Utilizator | Data | 3 martie 2008 22:59:06 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.36 kb |
#include<cstdio>
using namespace std;
bool v[2000001];
int main()
{long n,i,j,m=0,w[10001];
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf(" %ld",&n);
for(i=2;i<=n;++i)if(!v[i]){++m;for(j=i+i;j<=n;j+=i)v[j]=1;}
j=0;
printf("%ld\n",m);
for(i=n;m&&j<=10000;--i)if(!v[i]){w[++j]=i;--m;}
for(;j;--j)printf("%ld ",w[j]);
return 0;
}
