Пусть — разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение равным нулю.
Напишите программу, которая перебирает целые числа, меньшие 800 000, в порядке убывания и ищет среди них такие, для которых значение кратно 17 (нуль числу 17 не кратен). Выведите первые пять найденных чисел и соответствующие им значения . Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем — значение .
Строки выводятся в порядке убывания найденных чисел.
Например, для числа 20 .
Решение:
Решение на Python:
def d(x):
dels = set()
for i in range(2, int(x**0.5)+1):
if x % i == 0:
dels.add(i)
dels.add(x//i)
return dels
for x in range(800000, 0, -1):
dels = d(x)
if len(dels) > 0:
M = max(dels)-min(dels)
else:
M = 0
if M % 17 == 0 and M != 0:
print(x, M)
Ответ:
| 799995 | 266662 |
| 799990 | 399993 |
| 799967 | 114274 |
| 799956 | 399976 |
| 799922 | 399959 |
Ответ: