(И. Кушнир) В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от \(1\) до \(100~000\) включительно. Обозначим через \(M\) минимальный элемент последовательности, кратный \(8,\) но не равный \(8.\) Определите количество пар элементов последовательности, в которых оба числа делятся на \(M.\) Гарантируется, что такая пара в последовательности есть. В ответе запишите количество найденных пар, затем максимальное из чисел в такой паре с минимальной суммой элементов. Если пар с минимальной суммой элементов несколько, то следует выбрать максимальное число из первой подходящей пары. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Решение:
Python
nums = [int(x) for x in open('5285.txt')]
M = min(x for x in nums if x != 8 and x % 8 == 0)
q, ms, ans = 0, float('inf'), 0
for a, b in zip(nums, nums[1:]):
if a % M == 0 and b % M == 0:
q += 1
s = a + b
if s < ms:
ms = s
ans = max(a, b)
print(q, ans)
Ответ: \(3 \,\, 74280\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене