17.01 Обработка пар элементов последовательности
Ошибка.
Попробуйте повторить позже
В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 1 до 100000 включительно. Определите количество пар последовательности, в которых только одно число трехзначное, и сумма элементов пары кратна минимальному трехзначному числу последовательности, оканчивающемуся на 4. В ответе запишите два числа через пробел: сначала количество найденных пар, затем максимальную из сумм элементов таких пар.
В данной задаче под парой подразумевается любые два различных элемента последовательности.
Решение программой
Напишем программу, которая будет проверять все пары различных элементов из файла. Для каждой пары сначала выделим те числа, которые являются трёхзначными (то есть от 100 до 999 включительно). Затем проверим, что ровно одно из чисел пары — трёхзначное, а второе — нет. После этого вычислим сумму элементов пары и проверим, делится ли эта сумма на минимальное трёхзначное число из всей последовательности, которое оканчивается на 4 (это число мы найдём заранее). Если оба условия выполнены, то считаем эту пару подходящей. Количество таких пар и максимальную сумму элементов таких пар будем сохранять в список, чтобы по окончании перебора вывести нужные значения.
# считываем все числа из файла в список f = open("17_2.txt") a = [int(i) for i in f] # находим минимальное трёхзначное число, оканчивающееся на 4 mn4 = min([x for x in a if x % 10 == 4 and 100 <= x <= 999]) # список для хранения сумм подходящих пар ans = [] # перебираем все пары различных элементов for i in range(len(a) - 1): for j in range(i + 1, len(a)): # текущая пара из двух чисел temp = [a[i], a[j]] # список чисел из пары, которые являются трёхзначными check = [x for x in temp if 100 <= x <= 999] # проверяем, что ровно одно число трёхзначное # и сумма элементов кратна найденному числу mn4 if len(check) == 1 and sum(temp) % mn4 == 0: ans.append(a[i] + a[j]) # выводим количество подходящих пар и максимальную сумму их элементов print(len(ans), max(ans))
Специальные программы

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

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

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

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

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

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