Python. Задача 8-32

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

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

Дипломы Российских ВУЗов http://www.diplommaker.com/diplomy-o-vysshem-obrazovanii/ от 16000 руб.

2 3 4 6
Ответ
2 4 36451 72902
2 4 36457 72914
13 169 863 11219
2 4 36467 72934
2 4 36469 72938
Решение
# Список множителей
d = [0] * 4
for i in range(145762, 145881):
    # Счетчик множителей
    cnt = 0
    # Перебираем возможные множители
    for j in range(2, i):
        if i % j == 0:
            cnt += 1
            if cnt > 4:
                # дальнейшая проверка не нужна
                break
            d[cnt - 1] = j
    else:
        if cnt == 4:
            for i in range(4):
                print('%8d' % d[i], end = ' ')
            print()