Маска числа, Python (1 часть). №25 ЕГЭ
1 часть задач на нахождение чисел, соответствующих маске и делящихся без остатка на заданное число. Решение на Python.
Во всех приведённых ниже задачах нужно найти натуральные числа, не превышающие 109.
№D4FA23
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
– символ «?» означает ровно одну произвольную цифру;
– символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300405.
Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске
1234?57?8, делящиеся на число 17 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце –– соответствующие им результаты деления этих чисел на 17.
вариант решения
Уменьшим интервал для перебора чисел. Минимальное значение, соответствующее маске – 123405708, максимальное – 123495798.
Переберём числа в интервале, через методы строк найдём соответствующие маске и проверим делимость на 17. Для записи ответа выведем подходящие числа и результат их деления нв 17.

Результат:
123405788 | 7259164 |
123435708 | 7260924 |
123445738 | 7261514 |
123455768 | 7262104 |
123465798 | 7262694 |
123495718 | 7264454 |
Для решения следующей задачи достаточно изменить делитель.
№4A4F6C
Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске
1234?57?8, делящиеся на число 19 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце –– соответствующие им результаты деления этих чисел на 19.
ответ
123405798 | 6495042 |
123425748 | 6496092 |
123455768 | 6497672 |
123475718 | 6498722 |
123485788 | 6499252 |
№E8DE64
Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске
12345?7?8, делящиеся на число 23 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце –– соответствующие им результаты деления этих чисел на 23.
вариант решения
Ещё один возможный вариант решения для такого вида задач – перебирать только неизвестные цифры. Нужно определить какой цифрой в числе может быть заменён символ “?”. Используя конкатенацию строк составляем число, преобразуем его в целочисленный тип и проверяем делимость на 23.

Результат:
123450798 | 5367426 |
123451718 | 5367466 |
123453788 | 5367556 |
123454708 | 5367596 |
123456778 | 5367686 |
123459768 | 5367816 |
№0CC810
Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске
12345?7?8, делящиеся на число 31 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце –– соответствующие им результаты деления этих чисел на 31.
ответ
123452788 | 3982348 |
123453718 | 3982378 |
123457748 | 3982508 |
№317BA9
Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске
12345?7?8, делящиеся на число 37 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце –– соответствующие им результаты деления этих чисел на 37.
ответ
123451758 | 3336534 |
123454718 | 3336614 |
123458788 | 3336724 |
Примеры из Банка заданий ЕГЭ