Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
- символ «?» означает ровно одну произвольную цифру;
- символ «» означает любую последовательность цифр произвольной длины; в том числе «» может задавать и пустую последовательность.
Например, маске 123475 соответствуют числа 123405 и 12300405. Среди натуральных чисел, не превышающих , найдите все числа, соответствующие маске 1347579, делящиеся на 31007 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие результаты деления этих чисел на 31007.
Количество строк в таблице для ответа избыточно.
Решение:
Решение на Python:
from fnmatch import fnmatch
for x in range(31007, 10**10, 31007):
if fnmatch(str(x), '1*34?5?9'):
print(x, x // 31007)
Ответ:
| 1260341529 | 40647 |
| 291345529 | 41647 |
| 390340359 | 41937 |
| 331347559 | 42937 |
| 371346589 | 44227 |
Ответ: