Маска числа — это последовательность цифр, в которой могут встречаться специальные символы
Пример. Маске 123*4?5 соответствуют числа 123405 и 12376415.
Найдите все натуральные числа, не превышающие 1010, которые соответствуют маске 1?7246*1 и при этом без остатка делятся
В ответе запишите все найденные числа в порядке возрастания.
Ответ:
Приведём решение на языке Python.
for x in range(10):
s = '1' + str(x) + '72461'
if int(s) % 4173 == 0:
print(s)
for x in range(10):
for y in range(10):
s = '1' + str(x) + '724600' + str(y) + '1'
if int(s) < 10**10 and int(s) % 4173 == 0:
print(s)
for x in range(10):
for y in range(100):
s = '1' + str(x) + '72460' + str(y) + '1'
if int(s) < 10**10 and int(s) % 4173 == 0:
print(s)
for x in range(10):
for y in range(1000):
s = '1' + str(x) + '7246' + str(y) + '1'
if int(s) < 10**10 and int(s) % 4173 == 0:
print(s)
В результате работы программа должна вывести следующее:
1072461
1272460371
1772469231
Приведём решение на языке Python.
from fnmatch import *
for x in range(0, 10**10, 4173):
# Перебираем все числа от 0 с шагом 4173, будут получены числа кратные 4173
if fnmatch(str(x), '1?7246*1'):
# Проверяем полученное число соответствию заданию
print(x)

