(Р. Батоян) В файле содержится последовательность целых чисел. Элементы последовательности могут принимать значения от \(0\) до \(10~000\) включительно. Пусть \(M\) – максимальный элемент последовательности, являющийся полным кубом. Найдите такие тройки, в которых модуль разности между \(M\) и суммой элементов тройки является четным полным квадратом. В ответ запишите сначала количество таких троек, затем произведение минимальных двух элементов в подходящей тройке с максимальной суммой. Под тройкой подразумевается три идущих подряд элемента последовательности.
Решение:
Python
from math import isqrt
def is_cube(n):
for x in range(1, 100):
if x**3 == n:
return True
return False
nums = [int(x) for x in open('5179.txt')]
M = max(n for n in nums if is_cube(n))
q, max_sum = 0, 0
ans = None
for tr in zip(nums, nums[1:], nums[2:]):
tmp = abs(sum(tr) - M)
if isqrt(tmp)**2 == tmp and tmp % 2 == 0:
q += 1
if sum(tr) > max_sum:
max_sum = sum(tr)
ans = sorted(list(tr))
print(q, ans[0] * ans[1])
Ответ: \(15 \,\, 30033000\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене