Cod sursa(job #149787)
Utilizator | Data | 6 martie 2008 05:32:17 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include<stdio.h>
#include<string.h>
#define N 2000009
int main(){
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
long n;
scanf("%d" ,&n);
long i,j, prime[1000];
int k,h=0;
char v[N];
k=0;
for(i=2; i<=n; i++)
if (v[i]==0){
for (k++, j=2; j*i<=n; j++)
v[j*i]=1;}
for (i=n; i>=2; i--)
{
if (!v[i])
h++;
prime[h]=i;
if(h==1000) break;
}
printf("%d\n", k);
for (i=h; i>0; i--)
printf("%d ", prime[i]);
return 0;
}