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

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

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

№78B0A0

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

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

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

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

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

1?3*4?9, делящиеся на 1927 без остатка.

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

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

Уменьшим интервал для перебора чисел, определив минимальное число и шаг. Минимальное число, соответствующее маске – 102409. Оно не делится на 1927 без остатка. Ближайшее превышающее его число, кратное 1927:

(103409 // 1927 + 1) * 1927 = 104058

Переберём числа, кратные 1927 в интервале от 104058 до 108 включительно. Для этого укажем шаг 1927.

Каждое число через методы строк проверим на соответствие маске. Для записи ответа выведем подходящие числа и результат их деления на 1927.

Результат:

1439469747
103614795377
153524097967
163544498487
173564899007

№55A68F

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

1*23?9, делящиеся на 2023 без остатка.

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

решение

Минимальное число:

(12309 // 2023 + 1) * 2023 = 14161

Соответствие маске:

number[0] == ‘1’ and number[-4] == ‘2’ and number[-3] == ‘3’ and number[-1] == ‘9’

1442399713
111123395493
128723496363
146323597233
163923698103
181523798973
199123899843

№74D00D

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

12??1*56, делящиеся на 317 без остатка.

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

решение

Минимальное число:

(1200156 // 317 + 1) * 317 = 1200162

Соответствие маске:

number[0] == ‘1’ and number[1] == ‘2’ and number[4] == ‘1’ and number[-2] == ‘5’ and number[-1] == ‘6’

Результат:

12261563868
1232115638868
1251135639468
1270155640068
1289175640668

№3F7746

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

12??15*6, делящиеся на 253 без остатка.

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

решение

Минимальное число:

(1200156 // 253 + 1) * 253 = 1200232

Соответствие маске:

number[0] == ‘1’ and number[1] == ‘2’ and number[4] == ‘1’ and number[5] == ‘5’ and number[-1] == ‘6’

Результат:

12781565052
1253159649532
1274158650362
1295157651192

№4F6198

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

12??15*6, делящиеся на 273 без остатка.

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

решение

Минимальное число:

(1200156 // 273 + 1) * 273 = 1200381

Соответствие маске как в предыдущем задании.

Результат:

12481564572
1280151646892
1283154647002
1286157647112

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