(А.Богданов) Значение арифметического выражения
12345100 + 56789100 + DANOV100 + x,
где x − целое положительное число, не превышающее 2099, записали в 99-ричной системе счисления.
Определите наибольшее значение x, при котором в данной записи значения арифметического выражения оканчивается на 0.
В ответе запишите число в десятичной системе счисления
🔹 Шаг 1. Перевод слагаемых из 100-ричной записи
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUV"
def to_num(s, base):
n = 0
for ch in s.upper():
n = n * base + DIGITS.index(ch)
return n
s = to_num('12345', 100) + to_num('56789', 100) + to_num('DANOV', 100)
for x in range(2099, 0, -1):
val = s + x
if val % 99 == 0:
print(x)
break
📌 Результат: считаем сумму s всех слагаемых без x через функцию to_num.
🔹 Шаг 2. Наибольшее x, при котором запись в 99-ричной СС оканчивается на 0
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUV"
def to_num(s, base):
n = 0
for ch in s.upper():
n = n * base + DIGITS.index(ch)
return n
s = to_num('12345', 100) + to_num('56789', 100) + to_num('DANOV', 100)
for x in range(2099, 0, -1):
val = s + x
if val % 99 == 0:
print(x)
break
📌 Результат: перебираем x от 2099 вниз; если (s + x) % 99 == 0, запись оканчивается на ноль; печатаем такое x — ответ: 2027.
🔹 Шаг 1. Перевод слагаемых из 100-ричной записи
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUV"
def to_num(s, base):
n = 0
for ch in s.upper():
n = n * base + DIGITS.index(ch)
return n
s = to_num('12345', 100) + to_num('56789', 100) + to_num('DANOV', 100)
for x in range(2099, 0, -1):
val = s + x
if val % 99 == 0:
print(x)
break
📌 Результат: считаем сумму s всех слагаемых без x через функцию to_num.
🔹 Шаг 2. Наибольшее x, при котором запись в 99-ричной СС оканчивается на 0
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUV"
def to_num(s, base):
n = 0
for ch in s.upper():
n = n * base + DIGITS.index(ch)
return n
s = to_num('12345', 100) + to_num('56789', 100) + to_num('DANOV', 100)
for x in range(2099, 0, -1):
val = s + x
if val % 99 == 0:
print(x)
break
📌 Результат: перебираем x от 2099 вниз; если (s + x) % 99 == 0, запись оканчивается на ноль; печатаем такое x — ответ: 2027.
🔹 Шаг 1. Перевод слагаемых из 100-ричной записи
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUV"
def to_num(s, base):
n = 0
for ch in s.upper():
n = n * base + DIGITS.index(ch)
return n
s = to_num('12345', 100) + to_num('56789', 100) + to_num('DANOV', 100)
for x in range(2099, 0, -1):
val = s + x
if val % 99 == 0:
print(x)
break
📌 Результат: считаем сумму s всех слагаемых без x через функцию to_num.
🔹 Шаг 2. Наибольшее x, при котором запись в 99-ричной СС оканчивается на 0
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUV"
def to_num(s, base):
n = 0
for ch in s.upper():
n = n * base + DIGITS.index(ch)
return n
s = to_num('12345', 100) + to_num('56789', 100) + to_num('DANOV', 100)
for x in range(2099, 0, -1):
val = s + x
if val % 99 == 0:
print(x)
break
📌 Результат: перебираем x от 2099 вниз; если (s + x) % 99 == 0, запись оканчивается на ноль; печатаем такое x — ответ: 2027.