Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
– символ «?» означает ровно одну произвольную цифру;
– символ «» означает любую последовательность цифр произвольной длины; в том числе «» может задавать и пустую последовательность.
Например, маске 123475 соответствуют числа 123405 и 12300405.
Среди натуральных чисел, не превышающих , найдите все числа, соответствующие маске 3321?7, делящиеся на 2079 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им результаты деления этих чисел на 2079.
Количество строк в таблице для ответа избыточно.
Решение:
Решение на Python:
from fnmatch import fnmatch
for x in range(2079, 10**9, 2079):
if fnmatch(str(x), '33*21?7'):
print(x, x // 2079)
Ответ:
| 33622317 | 161723 |
| 33701237 | 162103 |
| 33780257 | 162483 |
| 33859217 | 162863 |
| 33938219 | 163243 |
Ответ: