Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
– символ «?» означает ровно одну произвольную цифру;
– символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300405.
Среди натуральных чисел, не превышающих , найдите все числа, соответствующие маске 63*095?4, делящиеся на 1034 без остатка.
В ответ запишите пары чисел (найденное число и результат деления его на 1034) в порядке возрастания через пробел.
# для оптимизации делаем цикл с шагом 1034, начиная с числа кратного 1034, для того чтобы проходиться по числам кратным 1034
for x in range(1034, 10**9+1, 1034):
s = str(x)
if (s[0:2] == ’63’) and (s[-1] == ’4’) and (s[-5:-2] == ’095’): # проверка, что число соответствует маске
print(x, x // 1034)
Ответ: 631609594 610841 635409544 614516