Рассмотрим произвольное натуральное число, представим его всеми возможными способами в виде произведения двух натуральных чисел и найдём для каждого такого произведения разность сомножителей. Например, для числа \(18\) получим: \(18 = 18 \cdot 1 = 9 \cdot 2 = 6 \cdot 3,\) множество разностей содержит числа \(17, \, 7\) и \(3.\) Подходящей будем называть пару сомножителей, разность между которыми не превышает \(120.\) Найдите все натуральные числа, принадлежащие отрезку \([2000000; \, 3000000],\) у которых есть не менее трёх подходящих пар сомножителей. В ответе перечислите найденные числа в порядке возрастания, справа от каждого запишите наибольший из всех сомножителей, образующих подходящие пары.
Решение:
Python
for n in range(2000000, 3000001):
div_pair = {(i, n // i) for i in range(2, int(n ** 0.5) + 1) if n % i == 0}
ans = [(x, y) for x, y in div_pair if abs(y - x) <= 120]
if len(ans) > 2:
ans.sort()
print(n, ans[0][1])
Ответ:
\(2053440 \,\, 1488\)
\(2098080 \,\, 1504\)
\(2328480 \,\, 1584\)
\(2620800 \,\, 1680\)
\(2638944 \,\, 1683\)
\(2692800 \,\, 1700\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене