Cod sursa(job #144738)

Utilizator FlorianFlorian Marcu Florian Data 27 februarie 2008 21:49:45
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
#include<stdio.h>
FILE*f=fopen("ciur.in","r");
FILE*g=fopen("ciur.out","w");
char u[2000005];
int a[1025];
int n,p;
int erat()
  {
  int i,j;
  for(i=1;i<=n;++i) u[i]='0';
  a[1]=2; p=1;
  for(j=2;j<=n/2;j++) u[2*j]='1';
  for(i=3;i<=n;i+=2)

   if(u[i]=='0')
     {
     j=3;
     a[++p]=i;
     if(p>=1000) return 0;
     while(i*j<=n)
       {
       u[i*j]='1';
       j+=2;
       }
     }
  return 1;
  }
int main()
 {
 fscanf(f,"%d",&n);
 erat();
 int i;
 if(p>1000) p=1000;
 fprintf(g,"%d\n",p);
 for(i=1;i<=p;++i) fprintf(g,"%d ",a[i]);
 return 0;
 }