14.02 Поиск цифр(-ы) числа
Ошибка.
Попробуйте повторить позже
Дано арифметическое выражение:
В записи чисел переменной x обозначена неизвестная цифра. При каком наименьшем значении переменной х, сумма цифр значения этого выражения, записанного в 7-ричной системе счисления, равна 34? В ответе для найденного значения x укажите значение выражения в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
В данной задаче нам даны два числа с неизвестной цифрой x в 16-ричной системе счисления: и
. Необходимо найти наименьшее значение x, при котором сумма цифр значения выражения, записанного в
7-ричной системе, равна 34, и затем вывести значение выражения в десятичной системе. Для решения мы используем
полный перебор возможных значений x из алфавита 16-ричной системы ’0123456789abcdef’. Для каждого символа x мы
формируем строки чисел: для первого числа соединяем ’9ac’, x и ’36’, для второго — ’5cd’, x и ’da’. Затем с помощью
функции int с основанием 16 преобразуем эти строки в десятичные числа, чтобы можно было выполнить
арифметические операции в Python. Далее суммируем эти два числа, получая s = s1 + s2. После этого с помощью
функции n7 переводим полученную сумму в 7-ричную систему, формируя строку цифр, и применяем
функцию summ, которая последовательно складывает все цифры числа, используя цикл while: пока n больше
нуля, прибавляем остаток от деления на 10 к сумме и делим n на 10, чтобы перейти к следующей цифре.
После вычисления суммы цифр проверяем условие if summ(int(n7(int(s)))) == 34. Если оно выполняется,
выводим значение суммы в десятичной системе через print(s). Поскольку мы перебираем x начиная с
наименьшего и выводим результат сразу при первом успешном условии, найденное значение x будет
минимальным.
# Функция для подсчёта суммы цифр числа n в десятичной системе def summ(n): s = 0 # Пока число больше нуля while n > 0: # Прибавляем к сумме последнюю цифру числа s += n % 10 # Убираем последнюю цифру из числа n //= 10 return s # Функция для перевода числа n в 7-ричную систему и возвращения в виде строки def n7(n): a = ’’ # Пока число больше нуля while n > 0: # Добавляем остаток от деления на 7 в начало строки a = str(n % 7) + a # Делим число на 7, чтобы перейти к следующей цифре n //= 7 return a # Строка с возможными цифрами 16-ричной системы alf = ’0123456789abcdef’ # Перебираем все возможные значения x for x in alf: # Формируем первое число $9ACx36_{16}$ в виде строки и переводим в десятичную систему s1 = int(’9ac’ + x + ’36’, 16) # Формируем второе число $5CDxDA_{16}$ в виде строки и переводим в десятичную систему s2 = int(’5cd’ + x + ’da’, 16) # Суммируем оба числа s = s1 + s2 # Переводим сумму в 7-ричную систему и вычисляем сумму её цифр if summ(int(n7(int(s)))) == 34: # Если сумма цифр равна 34, выводим значение суммы в десятичной системе print(s)
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!