Значение арифметического выражения
2 · 21872020 + 7292021 − 2 · 2432022 + 812023 − 2 · 272024 − 6561
записали в системе счисления с основанием 27. Определите в 27-ричной записи числа количество цифр с числовым значением, превышающим 9.
ИЛИ
Операнды арифметического выражения записаны в системе счисления с основанием 29:
923x87429 + 524x615229.
В записи чисел переменной x обозначена неизвестная цифра из алфавита 29-ричной системы счисления. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 28.
Для найденного x вычислите частное от деления значения арифметического выражения на 28 и укажите его в ответе в десятичной системе счисления.
Основание системы счисления указывать не нужно.
ИЛИ
Значение арифметического выражения
9 · 11210 + 8 · 11150 – x,
где x — целое положительное число, не превышающее 3000, записали в 11-ричной системе счисления. Определите наибольшее значение x, при котором в 11-ричной записи числа, являющегося значением данного арифметического выражения, содержится ровно 60 нулей.
В ответе запишите число в десятичной системе счисления.
Приведём решение на языке Python.
s = 2 * 2187**2020 + 729**2021 - 2 * 243**2022 +81**2023 - 2 * 27**2024 - 6561
t = []
while s > 0:
t.append(s % 27)
s //= 27
print(len([x for x in t if x > 9]))
Ответ: 3367.
ИЛИ
Приведём решение данной задачи на языке Python.
s = sorted('0123456789qwertyuiopasdfghjklzxcvbnm')
for x in s[:29]:
x1 = '923' + str(x) + '874'
x2 = '524' + str(x) + '6152'
res = int(x1, 29) + int(x2, 29)
if res % 28 == 0:
res = res // 28
print(res)
Ответ: 3319197720.
Приведём решение Александра Козлова на языке Python.
for x in range(30,0,-1):
a = 9*29**6 + 2*29**5 + 3*29**4 + x*29**3 + 8*29**2 + 7*29 + 4
b = 5*29**7 + 2*29**6 + 4*29**5 + x*29**4 + 6*29**3 + 1*29**2 + 5*29 + 2
if (a+b)%28 == 0:
print((a+b)//28)
break
Приведём решение Александра Тарасова на языке Python.
a='0123456789'+''.join([chr(x) for x in range(65,84)])
for i in a[::-1]:
s=int(f'923{i}874',29)+int(f'524{i}6152',29)
if s % 28 == 0:
print(s//28)
break
ИЛИ
Приведём решение на языке 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))

