Шаги решения задачи:
1. Маска 2*1?71 означает, что число начинается с 2, затем идет любая последовательность цифр (может быть пустой), затем одна произвольная цифра, затем цифра 7 и завершается на 1.
2. Диапазон для последовательности цифр можно ограничить от 0 до 9, т.к. число не превышает 10^9.
3. Используя циклы, перебираем все возможные значения для каждой позиции в маске. Сначала перебираем все значения для последовательности цифр, затем для произвольной цифры. Если число не удовлетворяет условию, пропускаем его.
4. Проверяем, делится ли число на 1991 и на 17 без остатка. Если да, добавляем его в список чисел, удовлетворяющих условию.
5. Выводим список найденных чисел.
Примерный код решения на языке Python:
numbers = []
for seq in range(0, 10**6):
seq_str = str(seq).zfill(6)
for digit in range(0, 10):
mask = f”2{seq_str}1{digit}71″
num = int(mask)
if num % 1991 == 0 and num % 17 == 0:
numbers.append(num)
print(numbers)