14.02 Поиск цифр(-ы) числа
Ошибка.
Попробуйте повторить позже
Операнды арифметического выражения записаны в системе счисления с основанием 12.
В записи чисел переменными и
обозначены РАЗНЫЕ неизвестные цифры из алфавита 12-ричной системы
счисления. Определите пару
и
с наибольшей суммой, при котором значение данного арифметического
выражения кратно и 2 и 3. В ответе запишите без пробелов и разделителей сначала
в десятичной системе счисления
затем
в десятичной системе счисления.
В задаче нам даны два числа и
, записанные в 12-ричной системе счисления, где переменные
и
—
это разные неизвестные цифры из алфавита этой системы (значения от 0 до 11, где 10 и 11 обычно обозначаются
буквами A и B). Нужно найти такую пару
, чтобы сумма этих двух чисел в десятичной системе была кратна и 2,
и 3, то есть одновременно делилась на оба числа. А так как наименьшее общее кратное 2 и 3 равно 6, это значит, что
мы проверяем делимость на 6. При этом из всех подходящих пар нужно выбрать ту, у которой сумма
наибольшая.
Чтобы перебрать все возможные комбинации, мы используем два вложенных цикла: внешний перебирает от 0 до
11, а внутренний перебирает
от 1 до 11 (вероятно,
не должен быть равен нулю, так как по условию это
ограничено диапазоном). Для каждой пары проверяем, что
, так как они должны быть разными. Далее
переводим каждое число в десятичную систему. Например,
раскладывается по степеням 12 так:
. Аналогично,
даёт
. Эти выражения
позволяют получить обычные целые числа в Python. Затем мы проверяем условие делимости суммы
на 2 и на 3 с помощью операторов (m + n) % 2 == 0 и (m + n) % 3 == 0. Если оба условия
выполняются, то сравниваем сумму
с текущим максимумом mx. Если она больше, обновляем
максимум и выводим найденную пару в формате str(x) + str(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))
Специальные программы

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

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

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

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

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

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