Задание 17. Информатика. 2023-4

Просмотры: 173
Изменено: 23 ноября 2024

В файле содержится последовательность натуральных чисел. Элементы последовательности могут принимать целые значения от \(1\) до \(100~000\) включительно. Определите количество троек последовательности, в которых ни одно число не оканчивается на \(3\), а сумма квадратов чисел тройки больше максимального элемента последовательности. В ответе запишите количество найденных троек, затем минимальную из сумм квадратов элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

Файл с данными

Решение:

Python


file_descriptor = open('17var04.txt')

num_array = [int(x) for x in file_descriptor.readlines()]
max_num = max(num_array)
trinity_count = 0
min_sum_trinity = float('inf')

for trinity in zip(num_array, num_array[1:], num_array[2:]):
    rem = [x % 10 for x in trinity]
    if not (3 in rem) and sum(map(lambda x: x**2, trinity)) > max_num:
        trinity_count += 1
        min_sum_trinity = min(min_sum_trinity, 
                               sum(map(lambda x: x**2, trinity)))

print(trinity_count, min_sum_trinity)

Ответ: \(2936 \,\, 75058186\)