Cod sursa(job #144735)

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

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