Маска числа — это последовательность цифр, в которой могут встречаться специальные символы
Пример. Маске 123*4?5 соответствуют числа 123405 и 12376415.
Найдите все натуральные числа, не превышающие 1010, которые соответствуют маске 1?3948*5 и при этом без остатка делятся
В ответе запишите все найденные числа в порядке возрастания.
Ответ:
Приведём решение на языке Python.
for x in range(10):
s = '1' + str(x) + '39485'
if int(s) % 3013 == 0:
print(s)
for x in range(10):
for y in range(1000):
s = '1' + str(x) + '394800' + 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) + '39480' + 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) + '3948' + str(y) + '5'
if int(s) < 10**10 and int(s) % 3013 == 0:
print(s)
В результате работы программа должна вывести следующее:
1039485
1739480225
1839481695
1939483165
Приведём решение Михаила Глинского на языке Python.
for x in range(1039485,10**10,3013):
s = str (x)
if s[0] == '1' and s[2:6] == '3948' and s[-1] == '5':
print(x)
Приведём решение Андрея Тухманова на языке Python.
from fnmatch import *
for i in range(0, 10 ** 10, 3013):
if fnmatch(str(i), '1?3948*5'):
print(i)

