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()