ЕГЭ · ЗАДАНИЕ 14
Системы счисления · №20904
Число (3^100) − x записывают в системе с основанием 3. Переменная x — целое число от 1 до 2030 включительно. Найдите наибольшее x, дающее ровно 1 нулей. Ответ запишите десятичным числом.
Источник задания
Сначала попробуй решить самостоятельно, затем открой разбор. Для автоматической проверки ответа включи JavaScript.
Показать решение по шагам
Разбор решения
Ответ: 1823
Перебираем ровно x=1…2030; для каждого заново берём fixed−x. Цифры извлекаем остатками, обнуляя счётчик при каждом новом x. Отбираем значения с 1 нулями. В выбранном случае нулей 1. В ответ идёт x=1823, а не 1. Границы конечного перебора прямо заданы условием; верхняя включена.
def digits(n, base):
if n == 0:
return [0]
result = []
while n > 0:
result.append(n % base)
n //= base
return result
fixed = 3**100
results = []
for x in range(1, 2031):
zeros = digits(fixed - x, 3).count(0)
results.append((x, zeros))
valid = [x for x, z in results if z == 1]
print(max(valid))