.06 Макс/мин, кол-во пар, произведение кратно/не кратно
Ошибка.
Попробуйте повторить позже
В файле 7.txt имеется последовательность натуральных чисел. Найдите количество пар элементов последовательности, произведение которых кратно 71 и равно произведению элементов какой-либо другой пары (в которой отличается индекс хотя бы одного из элементов, образующих пару).
Под парой в данной задаче подразумевается два различных элемента последовательности.
В первой строке файла содержится число N (), каждая из следующих N строк файла содержит одно
натуральное число, не превышающее 10000.
Пример входного файла:
6
2
5
4
2
4
71
Для указанных входных данных ответом является число 4.
Пояснение: В этом наборе можно выбрать две пары (71 и 2), и две пары (71 и 4). Пара (71 и 5) не подходит, потому что нет другой пары, произведение элементов которой равно 71*5. Ответ: 4.
Решение программой
Для решения задачи сначала нужно перебрать все пары чисел из последовательности и запомнить их произведения. Затем среди них ищем такие пары, у которых произведение кратно 71 и у этого произведения есть хотя бы один “дубликат” — то есть такое же значение произведения, но от другой пары (где индексы хотя бы одного числа другие). Под «парой» подразумеваются два разных элемента последовательности.
Программа сначала читает данные и сохраняет все возможные произведения пар чисел в список p. Далее повторно перебираются все пары и проверяется: кратно ли их произведение 71 и встречается ли оно в списке хотя бы дважды (то есть, есть ли совпадение с другой парой). Если да, счётчик увеличивается.
# Открываем файл и считываем количество чисел f = open("7.txt") n = int(f.readline()) # Считываем сами числа a = [int(i) for i in f] # Счётчик подходящих пар count = 0 # Массив для хранения всех произведений пар p = [] # Сначала собираем все возможные произведения пар i < j for i in range(n): for j in range(i + 1, n): p.append(a[i] * a[j]) # Снова перебираем все пары for i in range(n): for j in range(i + 1, n): # Условие: произведение кратно 71 и встречается в списке хотя бы дважды if (a[i] * a[j]) % 71 == 0 and p.count(a[i] * a[j]) > 1: count += 1 print(count)
Специальные программы

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

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

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

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

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

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