(М. Шагитов) В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от \(0\) до \(10~000.\) Найдите все тройки элементов последовательности, в которых хотя бы одно число делится на сумму цифр двух других чисел в тройке, а сумма чисел тройки больше, чем максимальный элемент последовательности кратный \(401.\) В ответе запишите количество найденных троек, затем минимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Решение:
Python
def s4n(x, y):
return sum(int(c) for c in str(x) + str(y))
nums = [int(x) for x in open('5175.txt')]
m4 = max(n for n in nums if n % 401 == 0)
q, ms = 0, float('inf')
for a, b, c in zip(nums, nums[1:], nums[2:]):
if (a % s4n(b, c) == 0 or b % s4n(a, c) == 0 or c % s4n(a, b) == 0) \
and a + b + c > m4:
q += 1
ms = min(ms, a + b + c)
print(q, ms)
Ответ: \(774 \,\, 9700\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене