Cod sursa(job #148920)

Utilizator loganelLoganel loganel Data 4 martie 2008 23:16:00
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include<stdio.h>  

#define M 1000001
char  v[M];
long w[2000];

int main()
{long n,i,j,k=0;

FILE *f=fopen("ciur.in","r");
FILE *g=fopen("ciur.out","w");

fscanf (f,"%ld",&n);


for(i=3;i*i<=n;i+=2)
 if(v[i]==0) for(j=i+i;j<=n;j+=i)
	      v[j]=1;
k=1;w[k]=2;
for(i=3;i<=n;i+=2)
 if(v[i]==0){ k++;if(k<1001) w[k]=i;}

fprintf(g,"%ld\n",k);

if(k>1000) k=1000;
for(i=1;i<=k;i++)
 fprintf(g,"%ld ",w[i]);

fprintf(g,"\n");

fclose(f);
fclose(g);
return 0;
}