Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
— символ «?» означает ровно одну произвольную цифру;
— символ «*» означает любую последовательность — цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300405.
Среди натуральных чисел, не превышающих 108, найдите все числа, соответствующие маске 3?1*57, делящиеся
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им результаты деления этих чисел
Количество строк в таблице для ответа избыточно.
Ответ:
Будем последовательно рассматривать каждое целое число,
Приведём решение на языке Python.
from fnmatch import *
for x in range(0, 10**8, 2023):
# Перебираем все числа от 0 с шагом 2023, будут получены числа кратные 2023
if fnmatch(str(x), '3?1*57'):
# Проверяем полученное число соответствию заданию
print(x, x // 2023)
В результате работы программа должна вывести следующее:
321657 159
34105757 16859
35117257 17359
36128757 17859
37140257 18359
38151757 18859
39163257 19359

