(М. Шагитов) В файле содержится последовательность целых чисел. Элементы последовательности – четырёхзначные натуральные числа. Найдите все тройки элементов последовательности, для которых все суммы пар, составленные из всех чисел тройки – точные квадраты, а наименьшая сумма пары больше, чем среднее арифметическое всех чисел в файле, кратных 50. В ответе запишите количество найденных троек, затем минимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.
Решение:
Python
from math import isqrt
nums = [int(x) for x in open('5249.txt')]
n50 = [x for x in nums if x % 50 == 0]
avg50 = sum(n50) / len(n50)
q, ms = 0, float('inf')
for a, b, c in zip(nums, nums[1:], nums[2:]):
pairs = ((a, b), (a, c), (b, c))
sum_pairs = [sum(p) for p in pairs]
if all(isqrt(s)**2 == s for s in sum_pairs) and min(sum_pairs) > avg50:
q += 1
ms = min(ms, a + b + c)
print(q, ms)
Ответ: \(78 \,\, 10945\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене