(В. Петров) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12300405.\)
Среди натуральных чисел, не превышающих \(10^9,\) найдите все числа, семеричная запись которых соответствует маске \({?}213{*}5664,\) делящиеся на \(333_{10}\) без остатка. В ответе запишите все найденные числа в порядке возрастания, справа от каждого числа – соответствующие им частные от деления на \(333_{10}.\) Все числа в ответе запишите в десятичной системе счисления.
Решение:
Python
def conv(n):
ans = ''
while n:
ans = str(n % 7) + ans
n //= 7
return ans
st = int('12135664', 7)
start = st + (333 - st % 333) % 333
for n in range(start, 10**9, 333):
ns = conv(n)
if ns[1:4] == '213' and ns[-4:] == '5664':
print(n, n // 333)
Ответ:
\(24888420 \,\, 74740\)
\(371885742 \,\, 1116774\)
\(654120891 \,\, 1964327\)
\(937155573 \,\, 2814281\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене