Решение задачи 5 из главы 12.1

Решение задачи 5 из главы 12.1

5. Решите с помощью цикла repeat/until:
Выведите на экран, все четные числа от 35 до 117 и нечетные числа, делящиеся на 7 и 3 нацело и при этом лежащие в диапазоне от 45 до 99.

program Project5;
var i: integer;
begin
  i :=35;
  repeat
    if ((i>=45) AND (i<=99) AND ((i mod 2) = 1) AND ((i mod 3) = 0) AND ((i mod 7) = 0)) then
    begin
         write(i, ' ');
         i := i + 1;
    end
    else if ((i mod 2) = 0) then
         write(i, ' ');
         i := i + 1;
  until (i>117);
  readln();
end.  

Вывод этой программы:
36 38 40 42 44 46 48 50 52 54 56 58 60 62 63 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116

Число 64 не выводится: ... 60 62 63 66 68 ...

Строки

         write(i, ' ');
         i := i + 1;

повторяются.
Лучше переписать без повторения, используя OR.

Не заметила отсутствие 64. Спасибо за подсказку, так действительно код сократится и будет выглядеть лучше.

program Project5;
var i: integer;
begin
  i :=35;
  repeat
    if ((i>=45) AND (i<=99) AND ((i mod 2) = 1) AND ((i mod 3) = 0) AND ((i mod 7) = 0)) OR ((i mod 2) = 0) then
         write(i, ' ');
         i := i + 1;
  until (i>117);
  readln();
end.