Найти в Дзене

Разбор номера 7357 ЕГЭ по информатике #25

Оглавление

Условие: № 7357 (Уровень: Средний)
Статья подготовлена командой itpy
Полный разбор задачи в Telegram

(Л. Шастин) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:

– символ «?» означает ровно одну произвольную чётную цифру;
– символ «
» означает любое нечётное число; в том числе «» может задавать и пустую последовательность.

Например, маске 123*4?5 соответствуют числа 123737465 и 123485.

Среди натуральных чисел, не превышающих 10**10 , найдите 5 наибольших чисел, соответствующих маске ?136*, делящихся на 53191 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им результаты деления этих чисел на 53191.

Количество строк в таблице для ответа избыточно.

Решение через Python и комментарии к нему:

-2

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

  1. from fnmatch import * - импорт всех функций из модуля fnmatch для работы с шаблонами и строками.
  2. R = [] - создание пустого списка R, куда будут добавляться результаты.
  3. Цикл for x in range(53191, 10**10, 53191): для перебора чисел от 53191 до 10^10 с шагом 53191;
  4. if fnmatch(str(x), '?136*'): - проверка, соответствует ли строковое представление числа x шаблону '?136*'.
  5. if str(x)[0] in '02468' and str(x)[-1] in '13579': - проверка, что первая цифра числа находится в диапазоне '02468', а последняя - в '13579'.
  6. R.append([x, x // 53191]) - добавление пары чисел [x, x // 53191] в список R.
  7. Цикл for i in range(-5, 0): для вывода последних пяти элементов списка R:
  8. print(*R[i]) - вывод списка элементов с индексами с -5 по -1.

Ответ:

8136574079 152969

8136680461 152971

8136786843 152973

8136893225 152975

8136999607 152977

Читайте нас в телеграмме:

Информатика ЕГЭ | itpy 👨‍💻

Присоединяйся к нашему Телеграм каналу: t.me/informatika_kege_itpy
Присоединяйся к нашему Телеграм каналу: t.me/informatika_kege_itpy