Значение арифметического выражения
9 · 11210 + 8 · 11150 – x,
где x — целое положительное число, не превышающее 3000, записали в 11-ричной системе счисления. Определите наибольшее значение x, при котором в 11-ричной записи числа, являющегося значением данного арифметического выражения, содержится ровно 60 нулей.
В ответе запишите число в десятичной системе счисления.
Приведём решение на языке Python.
for x in range (3000, 1, -1):
t = 9*11**210 + 8*11**150 - x
c = 0
while t != 0:
if t % 11 == 0:
c += 1
t //= 11
if c == 60:
print(x)
exit()
Ответ: 2992.
Приведём решение Александра Козлова на языке Python.
m = []
for x in range (3000, 1, -1):
t = 9*11**210 + 8*11**150 - x
s = ''
while t:
s = str(t%11)+s
t //= 11
if s.count('0') - s.count('10') == 60:
m.append(x)
print(max(m))
Приведём решение Александра Козлова на языке Python.
m = [x for x in range(3000, 1, -1)
if (lambda x: (s := ''.join(str((9 * 11**210 + 8 * 11**150 - x) // (11 ** i) % 11)
for i in range(211)))[::-1].count('0') - s.count('10') == 60)(x)]
print(max(m))

