Найти в Дзене

Разбор номера 16264 #kege по информатике #ЕГЭ17

Автор: Е.Джобс
Уровень: Базовый Определите количество пар элементов последовательности, в которых хотя бы одно число кратно минимальному двузначному значению последовательности, которое кратно сумме своих цифр.
Гарантируется, что в последовательности есть хотя бы одно двузначное число, соответствующее условию. В ответе запишите количество найденных пар чисел, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Больше разборов на эту и другие задачи вы можете найти в нашем Телеграм канале: Информатика ЕГЭ | itpy 👨‍💻 Подписывайтесь на наш канал по теории Python: Азим вкатывается в IT | itpy 💻  Вы найдете тут много полезного!
Оглавление

Автор: Е.Джобс
Уровень:
Базовый

Условие задачи:

Определите количество пар элементов последовательности, в которых хотя бы одно число кратно минимальному двузначному значению последовательности, которое кратно сумме своих цифр.

Гарантируется, что в последовательности есть хотя бы одно двузначное число, соответствующее условию. В ответе запишите количество найденных пар чисел, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Код решения:

Ответ: 537 19247
Ответ: 537 19247

Комментарии к коду:

  1. M = [int(x) for x in open('0. files/17.txt')]
    Читает файл '0. files/17.txt', преобразует каждую строку в целое число и сохраняет в список M
  2. D = [x for x in M if len(str(abs(x))) == 2 and x % sum(map(int, str(x))) == 0]
    Создает список D из чисел M, у которых ровно две цифры (учитывая модуль) и которые делятся на сумму своих цифр
  3. R = []
    Инициализирует пустой список R для хранения сумм подходящих пар
  4. for i in range(len(M) - 1):
    Цикл по индексам списка M (кроме последнего элемента, чтобы не выйти за границы)
  5. x, y = M[i], M[i + 1]
    Берет текущий элемент x и следующий y из списка M
  6. if (x % min(D) == 0) + (y % min(D) == 0) >= 1:
    Проверяет, что хотя бы одно из чисел x или y делится на минимальное число из списка D
  7. R.append(x + y)
    Если условие выполняется, добавляет сумму x и y в список R
  8. print(len(R), max(R))
    Выводит количество найденных пар и максимальную сумму из списка R
Больше разборов на эту и другие задачи вы можете найти в нашем Телеграм канале: Информатика ЕГЭ | itpy 👨‍💻
Подписывайтесь на наш канал по теории Python: Азим вкатывается в IT | itpy 💻  Вы найдете тут много полезного!