Маска числа — это последовательность цифр, в которой могут встречаться специальные символы
Пример. Маске 123*4?5 соответствуют числа 123405 и 12376415.
Найдите все натуральные числа, не превышающие 1010, которые соответствуют маске 1?6961*5 и при этом без остатка делятся
В ответе запишите все найденные числа в порядке возрастания.
Ответ:
Приведём решение на языке Python.
for x in range(10):
s = '1' + str(x) + '69615'
if int(s) % 3013 == 0:
print(s)
for x in range(10):
for y in range(1000):
s = '1' + str(x) + '696100' + str(y) + '5'
if int(s) < 10**10 and int(s) % 3013 == 0:
print(s)
for x in range(10):
for y in range(1000):
s = '1' + str(x) + '69610' + str(y) + '5'
if int(s) < 10**10 and int(s) % 3013 == 0:
print(s)
for x in range(10):
for y in range(1000):
s = '1' + str(x) + '6961' + str(y) + '5'
if int(s) < 10**10 and int(s) % 3013 == 0:
print(s)
В результате работы программа должна вывести следующее:
1069615
1769610225
1869611695
1969613165
Приведём решение Артёма Гридина на языке Python.
for i in range(0, 10**10, 3013):
s = str(i)
if s[0] == '1' and s[2:6] == '6961' and s[-1] == '5':
print(s)
Приведём решение Андрея Тухманова на языке Python.
from fnmatch import *
for i in range(0, 10 ** 10, 3013):
if fnmatch(str(i), '1?6961*5'):
print(i)

