17.01 Обработка пар элементов последовательности
Ошибка.
Попробуйте повторить позже
В файле содержится последовательность целых чисел. Каждое число не превышает по модулю 10000. Определите и запишите в ответе через пробел сначала количество пар элементов последовательности, для которых модуль произведения элементов оканчивается на Е в 16-ричной системе счислении и ровно один элемент из пары оканчивается на цифру 6, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два различных элемента последовательности. Порядок элементов в паре не важен.
Решение программой
Напишем программу, которая будет проверять все возможные пары различных элементов в последовательности (порядок не важен). Для каждой пары проверим, оканчивается ли произведение чисел на E в шестнадцатеричной системе (то есть остаток от деления на 16 равен 14), и при этом хотя бы одно из чисел должно оканчиваться на 6. Если оба условия выполняются, увеличиваем счётчик подходящих пар и обновляем максимальную сумму среди них. В конце выводим количество таких пар и максимальную сумму.
# Открываем файл f = open("Задание 17.txt") # Считываем все числа a = [int(x) for x in f] # Счётчик подходящих пар c = 0 # Переменная для хранения максимальной суммы # Очень маленькое, чтобы обновилось при первом же подходящем случае mx = -10 ** 10 # Перебираем все возможные пары (разные элементы, порядок не важен) for i in range(len(a)): for j in range(i + 1, len(a)): # Проверяем, что последняя цифра (в 16-ричной системе) # произведения равна E (14 в десятичной) flag1 = (abs(a[i]) * abs(a[j])) % 16 == 14 # Проверяем, что хотя бы одно число из пары оканчивается на 6 # Каждая из () вернет либо 1, либо 0, как будто это маленький IF flag2 = (abs(a[i]) % 10 == 6) + (abs(a[j]) % 10 == 6) # Если оба условия выполняются if flag1 and flag2: c += 1 mx = max(mx, a[i] + a[j]) print(c, mx)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!