Cod sursa(job #657140)

Utilizator dady95bogdan david dady95 Data 5 ianuarie 2012 20:14:36
Problema Ciurul lui Eratosthenes Scor 0
Compilator fpc Status done
Runda winners6 Marime 1.16 kb
program info;
var v:array[2..10000]of boolean;
    n,i,j,d,r,k,c:integer;
    f,g:text;
begin
   assign(f,'ciur.in');
   reset(f);
   assign(g,'ciur.out');
   rewrite(g);
   read(f,n);
   for i:=2 to n do
       v[i]:=true;
   i:=2;
   j:=trunc(sqrt(n));
   while i<=j do
              begin
                 if (i mod 2=0)and(i>2) then
                    v[i]:=false
                                        else
                 if (i mod 3=0)and(i>3) then
                    v[i]:=false
                                        else
                 begin
                 d:=3;
                 r:=trunc(sqrt(i));
                 while (d<=r)and(v[i]=true) do
                       if i mod d=0 then
                          v[i]:=false
                                    else
                          d:=d+2;
                 end;
               k:=i;
               while i<=n do
                     if i mod k =0 then
                        v[i]:=false;
                     i:=i+k;
               i:=k+1;
              end;
    for i:=2 to n do
        if v[i]=true then
           write (g,i,' ');
    close(f);
    close(g);
end.