Cod sursa(job #144745)

Utilizator FlorianFlorian Marcu Florian Data 27 februarie 2008 21:56:24
Problema Ciurul lui Eratosthenes Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 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,cnt=1;
void erat()
  {
  int i,j;
  for(i=1;i<=n;++i) u[i]='0';
  for(j=2;j<=n/2;j++) u[2*j]='1';
  for(i=3;i<=n;i+=2)

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