Маска числа, 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.
Результат:
1439469 | 747 |
10361479 | 5377 |
15352409 | 7967 |
16354449 | 8487 |
17356489 | 9007 |
№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’
1442399 | 713 |
11112339 | 5493 |
12872349 | 6363 |
14632359 | 7233 |
16392369 | 8103 |
18152379 | 8973 |
19912389 | 9843 |
№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’
Результат:
1226156 | 3868 |
12321156 | 38868 |
12511356 | 39468 |
12701556 | 40068 |
12891756 | 40668 |
№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’
Результат:
1278156 | 5052 |
12531596 | 49532 |
12741586 | 50362 |
12951576 | 51192 |
№4F6198
Среди натуральных чисел, не превышающих 108, найдите все числа, соответствующие маске
12??15*6, делящиеся на 273 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им результаты деления этих чисел на 273.
решение
Минимальное число:
(1200156 // 273 + 1) * 273 = 1200381
Соответствие маске как в предыдущем задании.
Результат:
1248156 | 4572 |
12801516 | 46892 |
12831546 | 47002 |
12861576 | 47112 |
Примеры из Банка заданий ЕГЭ