Тема 14. Системы счисления

14.02 Поиск цифр(-ы) числа

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела системы счисления
Решаем задачу:

Ошибка.
Попробуйте повторить позже

Задача 1#54404

Операнды арифметического выражения записаны в системе счисления с основанием 12.

y5x512 + 3x6y12

В записи чисел переменными x  и y  обозначены РАЗНЫЕ неизвестные цифры из алфавита 12-ричной системы счисления. Определите пару x  и y  с наибольшей суммой, при котором значение данного арифметического выражения кратно и 2 и 3. В ответе запишите без пробелов и разделителей сначала x  в десятичной системе счисления затем y  в десятичной системе счисления.

Показать ответ и решение

В задаче нам даны два числа y5x512  и 3x6y12  , записанные в 12-ричной системе счисления, где переменные x  и  y  — это разные неизвестные цифры из алфавита этой системы (значения от 0 до 11, где 10 и 11 обычно обозначаются буквами A и B). Нужно найти такую пару (x,y)  , чтобы сумма этих двух чисел в десятичной системе была кратна и 2, и 3, то есть одновременно делилась на оба числа. А так как наименьшее общее кратное 2 и 3 равно 6, это значит, что мы проверяем делимость на 6. При этом из всех подходящих пар нужно выбрать ту, у которой сумма x+ y  наибольшая.

Чтобы перебрать все возможные комбинации, мы используем два вложенных цикла: внешний перебирает x  от 0 до 11, а внутренний перебирает y  от 1 до 11 (вероятно, y  не должен быть равен нулю, так как по условию это ограничено диапазоном). Для каждой пары проверяем, что x ⁄= y  , так как они должны быть разными. Далее переводим каждое число в десятичную систему. Например, y5x512  раскладывается по степеням 12 так: m = y ⋅123 + 5⋅122 + x ⋅121 + 5  . Аналогично, 3x6y12  даёт n = 3 ⋅123 + x⋅122 +6 ⋅121 + y  . Эти выражения позволяют получить обычные целые числа в Python. Затем мы проверяем условие делимости суммы (m + n)  на 2 и на 3 с помощью операторов (m + n) % 2 == 0 и (m + n) % 3 == 0. Если оба условия выполняются, то сравниваем сумму x+ y  с текущим максимумом mx. Если она больше, обновляем максимум и выводим найденную пару в формате str(x) + str(y), то есть в виде строки без пробелов и разделителей. В итоге программа находит и печатает пару x  и y  с наибольшей суммой, удовлетворяющую условию.

mx = 0  # Переменная для хранения текущей максимальной суммы x + y
for x in range(12):  # Перебираем все возможные значения x от 0 до 11
    for y in range(1, 12):  # Перебираем все возможные значения y от 1 до 11
        if x != y:  # Проверяем, что x и y — разные цифры
            # Переводим число $y5x5_{12}$ в десятичную систему
            m = y * 12**3 + 5 * 12**2 + x * 12**1 + 5
            # Переводим число $3x6y_{12}$ в десятичную систему
            n = 3 * 12**3 + x * 12**2 + 6 * 12**1 + y
            # Проверяем делимость суммы m + n на 2 и на 3
            if (m + n) % 2 == 0 and (m + n) % 3 == 0 and x + y > mx:
                # Обновляем максимум, если сумма x + y больше текущей
                mx = x + y
                # Выводим пару x и y без пробелов
                print(str(x) + str(y))

Ответ: 117

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

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

Бесплатное онлайн-обучение

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

Налоговые вычеты

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

Специальное предложение
для учителей

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

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

cyberpunkMouse
cyberpunkMouse
Рулетка
Вы можете получить скидку в рулетке!