Задача · 11 класс Задача №3722336
А
А
Ответ: 2992.
BASE = 11
def count_zeros(n):
count = 0
while n > 0:
digit = n % BASE # последняя цифра в 11-ричной системе
if digit == 0:
count += 1
n //= BASE # удаляем последнюю цифру
return count
p150 = BASE ** 150
p210 = BASE ** 210
answer = 0
for x in range(1, 3001):
number = 9 * p210 + 8 * p150 - x
if count_zeros(number) == 60:
answer = x
print(answer)
Вывод программы:
2992
Почему работает:
n % 11получает последнюю цифру числа в 11-ричной системе;n //= 11удаляет эту цифру;- программа перебирает все допустимые значения \(x\) от 1 до 3000;
- так как перебор идёт по возрастанию, последнее найденное значение является наибольшим;
- цифра \(10\) в 11-ричной системе не считается нулём, поэтому цифры проверяются численно, а не через строку.
Проверка: при \(x=2992\) в записи выражения получается ровно 60 цифр со значением 0.
