Как найти множество чисел кратных 51 по заданной маске?
ЕГЭ информатика 2023
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
- символ
"?"
означает ровно одну произвольную цифру; - символ
"*"
означает любую последовательность цифр произвольной длины; в том числе"*"
может задавать и пустую последовательность.
Например, маске123*4?5
соответствуют числа123405
и12300425
.
Среди натуральных чисел, не превышающих 106, найдите все числа,
соответствующие маске 12*45*
и делящиеся на число 51
без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им частные от деления на 51.
Моя программа:
for n in range(0,10):
for i in range(0,10):
s = '12'+str(n)+'45'+str(i)
if int(s) % 51 == 0:
print(s, int(s) / 51)
Что она выводит:
122451 2401.0
Только одна пара в ответе (обычно в этих задачах 4-6 ответов) или я неправильно понял задачу?
Источник: Stack Overflow на русском