Cod sursa(job #144878)
| Utilizator | Data | 28 februarie 2008 08:00:16 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.42 kb |
#include <stdio.h>
int main(){
int v[2000001]={0},n,i,w[20000],k=1,x,y,j;
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d",&n);
for(i=4;i<=n;i+=2)
v[i]=1;
w[k]=2;
for(i=3;i<=n;i+=2)
if(!v[i]){
w[++k]=i;
for(j=i+i;j<=n;j+=i)
v[j]=1;
}
printf("%d\n",k);
if(k>1000) {
for(i=k-999;i<=k;i++)
printf("%d ",w[i]);
}
else for(i=1;i<=k;i++)
printf("%d ",w[i]);
}