В файле содержится последовательность натуральных чисел. Элементы последовательности могут принимать целые значения от 1 до 100 000 включительно. Определите количество пар последовательности, в которых остаток от деления на 55 хотя бы одного из элементов равен минимальному элементу последовательности.
В ответе запишите количество найденных пар, затем минимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
Решение:
|
f=open('17_17530.txt').readlines() a=[int(x) for x in f] mn=min(a) b=[] for i in range(len(a)-1): if a[i]%55==mn or a[i+1]%55==mn: b.append(a[i]+a[i+1]) print(len(b),min(b)) |
Объяснение кода:
- Чтение данных из файла:
|
f = open('17_17530.txt').readlines() |
Открываем файл '17_17530.txt'
и читаем все строки в список f
.
- Преобразование строк в числа:
Преобразуем каждую строку из списка f
в целое число и сохраняем в список a
.
- Нахождение минимального элемента в последовательности:
Находим минимальное значение в списке a
и сохраняем его в переменную mn
.
- Определение пар и вычисление их сумм:
|
b = [] for i in range(len(a) - 1): if a[i] % 55 == mn or a[i + 1] % 55 == mn: b.append(a[i] + a[i + 1]) |
Инициализируем пустой список b
для хранения сумм пар. Проходим по всем элементам списка a
до предпоследнего элемента:
- Если остаток от деления текущего элемента
a[i]
на 55 равен mn
или остаток от деления следующего элемента a[i + 1]
на 55 равен mn
, добавляем сумму этих двух элементов в список b
.
- Вывод результатов:
Выводим количество найденных пар (длину списка b
) и минимальную сумму элементов из этих пар (минимальное значение в списке b
).
Итог:
Этот код читает последовательность натуральных чисел из файла, находит минимальное значение в последовательности, определяет пары, где хотя бы один элемент имеет остаток от деления на 55, равный минимальному значению, и вычисляет их суммы. Затем выводит количество таких пар и минимальную сумму элементов этих пар.
Ответ: 201 2942