Войти Создать аккаунт

Как в ЕГЭ · 19 из 20

№25. Число по маске

По мотивам задания №25. Маска числа — запись, где «?» означает одну любую цифру, а «*» — любую последовательность цифр, в том числе пустую. Нужны все числа до предела, подходящие под маску и делящиеся на заданное число. Предел — десятки миллиардов, и перебрать все кратные не успеть. Зато вариантов маски — немного.

Что сделать

Найдите все числа не больше predel, подходящие под маску и делящиеся на delitel, — вместе с частными.

Что приходит

  • maska — строка из цифр, «?» и не больше одной «*»

  • delitel — на что должно делиться число

  • predel — наибольшее допустимое число, до 10¹¹

Что вернуть

Список пар (число, частное) по возрастанию числа; если подходящих нет — пустой.

Допишите функцию po_maske в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

Пример

Маска "1?2*", делитель 13, предел 10 000. Под маску подходят 102, 112, …, 192 (звезда пустая) и 1020…1929 (в звезде одна цифра). На 13 делятся 182 = 13 · 14, 1027 = 13 · 79, 1222 = 13 · 94 и другие — список начинается с (182, 14).

Тот же пример кодом
Вызов
po_maske("1?2*", 13, 10000)
Вернуть
[(182, 14), (1027, 79), (1222, 94), (1326, 102), (1521, 117), (1625, 125), (1729, 133), (1820, 140), (1924, 148)]
Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.