Python. Задача 8-31

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

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

2 3
2 4
Ответ
3 58153
7 24923
59 2957
13 13421
149 1171
5 34897
211 827
2 87251
Решение
# Список множителей
d = [0, 0]
for i in range(174457, 174506):
    # Счетчик множителей
    cnt = 0
    # Перебираем возможные множители
    for j in range(2, i):
        if i % j == 0:
            cnt += 1
            if cnt > 2:
                # дальнейшая проверка не нужна
                break
            d[cnt - 1] = j
    else:
        if cnt == 2:
            print('%8d' % d[0], '%8d' % d[1])