Pascal. Задача 8-31

Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [174457; 174505], числа, имеющие ровно два различных натуральных делителя, не считая единицы и самого числа. Для каждого найденного числа запишите эти два делителя в таблицу на экране с новой строки в порядке возрастания произведения этих двух делителей. Делители в строке таблицы также должны следовать в порядке возрастания.

Например, в диапазоне [5; 9] ровно два целых различных натуральных делителя имеют числа 6 и 8, поэтому для этого диапазона таблица на экране должна содержать следующие значения:

2 3
2 4
Решение
var
  i, j, cnt : integer;
  d : array[1..2] of integer;
begin
  for i := 174457 to 174505 do begin
    cnt := 0;
    for j := 2 to i - 1 do begin
      if i mod j = 0 then begin
        Inc(cnt);
        if cnt > 2 then break;
        d[cnt] := j;
      end;
    end;
    if cnt = 2 then begin
      Writeln(d[1]:8, ' ',d[2]:8);
    end;
  end;
end.