Program Eratosthen;

const mez = 100;

var prvocislo, nasobek : integer;
    nejvyssi : integer;
    sito : array[2..mez] of boolean;

begin
  for prvocislo:=2 to mez do
  begin
    sito[prvocislo]:=True;
  end;
  prvocislo:=1;
  nejvyssi:=mez;
  repeat
    prvocislo:=prvocislo+1;
    while (not sito[prvocislo]) and (prvocislo<mez) do
    begin
      prvocislo:=prvocislo+1;
    end;
    nasobek:=prvocislo;
    while nasobek*prvocislo<=mez do
    begin
      sito[nasobek*prvocislo]:=False;
      nasobek:=nasobek+1;
    end;
    if sito[nejvyssi]=False then
      while sito[nejvyssi]<>True do
      begin
        nejvyssi:=nejvyssi - 1;
      end;
  until prvocislo>=sqrt(nejvyssi);
  for prvocislo:=2 to mez do
  begin
    if sito[prvocislo] then
      write(prvocislo, ' ');
  end;
  readln();
end.
