Значение арифметического выражения 3100 — x, где x — целое положительное число, не превышающее 2030, записали в троичной системе счисления. Определите наибольшее значение x, при котором в троичной записи числа, являющегося значением данного арифметического выражения, содержится ровно пять нулей.
В ответе запишите число в десятичной системе счисления.
Ответ:
ЕГЭ по информатике Основная волна 07.06.2024 kompege.ru – задание №14
Решение:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
def trocih(a): k=0 while a>0: if a%3==0: k+=1 a=a//3 if k==5: return True return False for x in range(1, 2030): a = 3**100 - x if trocih(a): print(x) |
…
2022
2023
2024
Объяснение кода:
- Функция
trocih(a):
1234567def trocih(a):k = 0while a > 0:if a % 3 == 0:k += 1a = a // 3return k
Функцияtrocihподсчитывает количество нулей в троичной записи числаa.k = 0: Инициализация счетчика нулей.while a > 0: Цикл продолжается, покаaбольше 0.if a % 3 == 0: Если остаток от деленияaна 3 равен 0, увеличиваем счетчикk.a = a // 3: Делимaна 3 (целочисленное деление).- Возвращаем количество нулей
k.
- Главный цикл:
1234for x in range(1, 2030):a = 3**100 - xif trocih(a) == 5:print(x)
Перебираем значенияxот 1 до 2030:a = 3**100 - x: Вычисляем значение выражения3**100 - x.if trocih(a) == 5: Если функцияtrocih(a)возвращает 5, выводим значениеx.
Итог:
Этот код перебирает значения x от 1 до 2030, вычисляет значение выражения 3**100 - x, и проверяет, содержит ли троичная запись результата ровно 5 нулей. Если условие выполняется, выводится значение x.
Ответ: 2024
