Cod sursa(job #147212)

Utilizator GavrilaVladGavrila Vlad GavrilaVlad Data 2 martie 2008 18:02:26
Problema Ciurul lui Eratosthenes Scor 0
Compilator fpc Status done
Runda Arhiva educationala Marime 0.8 kb
var v:array[0..2100000]of boolean;
    p:array[1..20000]of longint;
    n,j,k,u,i:longint;
    f:text;
begin
   assign(f,'ciur.in');
   reset(f);
   read(f,n);
   close(f);
   for i:=1 to n do
   v[i]:=true;
   i:=1;
   for i:=2 to n do
   if v[i] then begin j:=i;
                      k:=k+1;
                      while(j+i<=n)and(j+i>0)do
                      begin
                      j:=j+i;
                      v[j]:=false;
                      end;
                end;
   i:=n+1;
   repeat
   i:=i-1;
   if v[i] then begin u:=u+1;
                      p[u]:=i;
                end;
   until(i=2)or(u=1000);
   assign(f,'ciur.out');
   rewrite(f);
   writeln(f,k);
   u:=u+1;
   repeat
   u:=u-1;
   write(f,p[u],' ');
   until u=1;
   writeln(f);
   close(f);
end.