Задание 14. Информатика. ЕГЭ. Поляков-7672

Просмотры: 981
Изменено: 25 ноября 2024

(К. Багдасарян) Значение арифметического выражения \(5^{2025} + 5^{400} - x\), где \(x\) – натуральное число в диапазоне от \(10\) до \(70000\), записали в системе счисления с основанием \(5\). Определите максимальное значение \(x\), при котором данная запись содержит наибольшее количество цифр «\(4\)».

Решение:

Приведённая ниже программа будет исполняться долго. Однако, можно легко понять, какой вид должно иметь число \(x\). Число \(5^{2500} + 5^{400}\) в \(5\)-ричной системе счисления будет иметь вид $$ 1 \underbrace{0 \ldots 0}_{1624} 1 \underbrace{0 \ldots 0}_{400} $$ Вычитание \(1\) приведет к тому, что младшие \(400\) разрядов сбросятся в \(4\), а \(401\) разряд из \(1\) перейдёт в \(0\). Но нам нужно число, большее \(10\) и меньшее \(70000\). В пятеричной системе счисления оно должно иметь вид \(m0 \ldots 01\). Простым перебором устанавливаем, что наибольшее такое число — это число \(62501_{10} = 4000001_5\)..

Python


def count4(n):
    q = 0
    while n:
        q += int(n % 5 == 4)
        n //= 5
    return q

max4, max_x = 0, 0
for x in range(10,70001):
    m4 = count4(5**2025 + 5**400 - x)
    if m4 >= max4:
        max4 = m4
        max_x = x
print(max_x)

Ответ: \(62501\)