Маска числа, Python (1 часть). №25 ЕГЭ

1 часть задач на нахождение чисел, соответствующих маске и делящихся без остатка на заданное число. Решение на Python.

Во всех приведённых ниже задачах нужно найти натуральные числа, не превышающие 109.

№D4FA23

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

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

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

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

Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске

1234?57?8, делящиеся на число 17 без остатка.

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

вариант решения

Уменьшим интервал для перебора чисел. Минимальное значение, соответствующее маске – 123405708, максимальное – 123495798.

Переберём числа в интервале, через методы строк найдём соответствующие маске и проверим делимость на 17. Для записи ответа выведем подходящие числа и результат их деления нв 17.

маска числа 1_1

Результат:

1234057887259164
1234357087260924
1234457387261514
1234557687262104
1234657987262694
1234957187264454

Для решения следующей задачи достаточно изменить делитель.

№4A4F6C

Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске

1234?57?8, делящиеся на число 19 без остатка.

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

ответ

1234057986495042
1234257486496092
1234557686497672
1234757186498722
1234857886499252

№E8DE64

Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске

12345?7?8, делящиеся на число 23 без остатка.

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

вариант решения

Ещё один возможный вариант решения для такого вида задач – перебирать только неизвестные цифры. Нужно определить какой цифрой в числе может быть заменён символ “?”. Используя конкатенацию строк составляем число, преобразуем его в целочисленный тип и проверяем делимость на 23.

маска числа 1_2

Результат:

1234507985367426
1234517185367466
1234537885367556
1234547085367596
1234567785367686
1234597685367816

№0CC810

Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске

12345?7?8, делящиеся на число 31 без остатка.

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

ответ

1234527883982348
1234537183982378
1234577483982508

№317BA9

Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске

12345?7?8, делящиеся на число 37 без остатка.

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

ответ

1234517583336534
1234547183336614
1234587883336724

Примеры из Банка заданий ЕГЭ