uses crt; { pouzijeme knihovnu funkci pro praci s obrazovkou a klavesnici }
const
  n = 1000; { budeme chtit najit prvocisla v intervalu 1..n }
type
  TSieve = packed array[1..n] of boolean; { typ pro ulozeni sita }
var
  sieve : TSieve;
  i, j : word;
begin
  { zinicializujeme pole - kazde cislo oznacime jako neskrtnute }
  for i := 1 to n do sieve[i] := false;

  { na pozice 2, 5, 7 dame 1 }
  sieve[2] := true;
  sieve[5] := true;
  sieve[7] := true;

  { vezmeme kazde cislo }
  for i := 2 to n do
  begin

    { pokud je zaskrtnute, tak tak je zapsatelne jako 2^i 5^j 7^k }
    if sieve[i] then
    begin

      { vypiseme ho }
      write(i, ' ');

      { proskrtame dvou, peti a sedminasobky }
      if (2 * i > n) then break;
      sieve[2 * i] := true;
      if (5 * i <= n) then sieve[5 * i] := true;
      if (7 * i <= n) then sieve[7 * i] := true;
    end; { konec ifu }
  end;

  writeln;
  readkey; { pockame na stisk klavesy, at si stihneme precist vystup }
end.

