Пусть — разность максимального и минимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то считаем значение равным нулю.
Напишите программу, которая перебирает целые числа, бо́льшие 860 000, в порядке возрастания и ищет среди них такие, для которых значение оканчивается на 30. Вывести первые пять найденных чисел и соответствующие им значения .
Формат вывода: для каждого из пяти таких найденных чисел в отдельной строке сначала выводится само число, затем — значение .
Строки выводятся в порядке возрастания найденных чисел.
Например, для числа 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(860001, 100000000):
dels = d(x)
if len(dels) > 0:
M = max(dels)-min(dels)
else:
M = 0
if M % 100 == 30:
print(x, M)
Ответ:
| 860064 | 430030 |
| 860199 | 286730 |
| 860264 | 430130 |
| 860464 | 430230 |
| 860499 | 286830 |
Ответ: