
Маска числа — это последовательность цифр, в которой могут встречаться специальные символы «?» и «*». Символ «?» означает ровно одну произвольную цифру, символ «*» означает произвольную (в том числе пустую) последовательность цифр.
Например, маске 123*4?5 соответствуют числа 123405 и 12376415.
Найдите все натуральные числа, не превышающие 109, которые соответствуют маске 6?1*89*3 и при этом без остатка делятся на 9341.
В ответе запишите все найденные числа в порядке возрастания.
Ответ:
Решение.
Это задание ещё не решено, приводим решение прототипа.
Маска числа — это последовательность цифр, в которой могут встречаться специальные символы «?» и «*». Символ «?» означает ровно одну произвольную цифру, символ «*» означает произвольную (в том числе пустую) последовательность цифр.
Например, маске 123*4?5 соответствуют числа 123405 и 12376415.
Найдите все натуральные числа, не превышающие 109, которые соответствуют маске 4?5*07*3 и при этом без остатка делятся на 9341.
В ответе запишите все найденные числа в порядке возрастания.
Ответ:
Приведем решение на языке Python.
from fnmatch import *
for x in range (0, 10**9, 9341):
if fnmatch(str(x),'4?5*07*3'):
print(x)
В результате работы программа должна вывести следующее:
495073
48507813
405707653
495007613
495568073
Ответ: 495073; 48507813; 405707653; 495007613; 495568073