Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
—
—
Например, маске 123*4?5 соответствуют числа 123 405 и 12 300 405.
Среди натуральных чисел, не превышающих 1010, найдите все числа, соответствующие маске 7?23?64*8, делящиеся на 2026 без остатка.
В ответе запишите все найденные числа в порядке возрастания.
Ответ:
Приведем решение на языке Python.
from fnmatch import *
for x in range (0, 10**10, 2026):
if fnmatch(str(x),'7?23?64*8'):
if str(x)[1] in '02468' and str(x)[4] in '02468':
print(x)
В результате работы программа должна вывести следующее:
782386498
7023064168
7023864438
7623064068
7623864338
Приведем решение Юрия Красильникова на языке Python.
from itertools import product
even='02468'
d='0123456789'
twod=[''.join(x) for dl in range(3) for x in product(d,repeat=dl)]
a=sorted([int(f'7{x}23{y}64{z}8') for x in even for y in even for z in twod])
for y in [x for x in a if x%2026==0]: print(y)
Приведем решение Юрия Красильникова на языке Python.
from re import fullmatch
for x in range (2026, 10**10, 2026):
if fullmatch(r'7[02468]23[02468]64\d*8',str(x)): print(x)

