В файле содержится последовательность из 10000 целых положительных чисел. Каждое число не превышает 10000. Определите и запишите в ответе сначала количество пар элементов последовательности, у которых сумма элементов кратна 80 и хотя бы один элемент из пары делится на 50, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два различных элемента последовательности. Порядок элементов в паре не важен. Источник: ссылка |
Для решения этой задачи нам необходимо прочитать файл. Инициализируем 2 переменные для количества и максимальной суммы соответственно и начинаем перебирать пары. Проверяем каждую на выполнение условия.
Рекомендую взять всё условие в скобки. Также нужно научиться различать типы пар. В 17-х встречаются разные виды пар:#Задание 17
#Открываем файл
f = open(r"/home/artyom/Downloads/17.txt", 'r', encoding="utf-8")
#Заполняем массив ЦЕЛЫМИ из каждой строки
mas = [int(i) for i in f.readlines()]
f.close() #Закрываем open
k = mx = 0
#Перебираем все возможные пары элементов в файле
for i in range(len(mas) - 1):
for j in range(i + 1, len(mas)):
a = mas[i] #Первое число в паре
b = mas[j] #Второе число в паре
if (((a + b) % 80 == 0) and (a % 50 == 0 or b % 50 == 0)):
k += 1
mx = max(mx, a + b)
print(k, mx)