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