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