Ошибка 86 (программа по решету эратосфена)

var m,p:set of byte;
    i,min:byte;
    h:integer;
    write('h=');
    readln(h);
begin
m:=[2..h];
p:=[];
repeat
min:=h;
for i:=2 to h do
if (i in m)and(i<min)then min:=i;
for i:=2 to h do
if (i in m)and(i mod min=0) then m:=m-[i];
p:=p+[min];
until m=[];
writeln('prostie chisla ot 2 do h');
for i:=2 to h do
if i in p then write(i:4);
readln;
end.
Пишет что в 4 строке пропущено двоеточие (хотя оно там и не нужно).
3 ответа

var
  m, p: set of byte;
  i, min: byte;
  h: integer;
 
begin
  write('h=');
  readln(h);
  m := [2..h];
  p := [];
  repeat
    min := h;
    for i := 2 to h do
      if (i in m) and (i < min) then 
        min := i;
    for i := 2 to h do
      if (i in m) and (i mod min = 0) then 
        m := m - [i];
    p := p + [min];
  until m = [];
  writeln('prostie chisla ot 2 do h');
  for i := 2 to h do
    if i in p then 
      write(i:4);
  readln;
end.


ZX Spectrum-128, Я не могу понять в чем ошибка, но у меня не происходит запрос ввода данных о количестве чисел. У меня происходит сразу рассмотрение диапазона от 0 до 255


У меня нет тп, на fpc в режиме совместимости работает