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

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

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

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

Задача 1#25585

Значение выражения 3435 +73 − 1− X  записали в системе счисления с основанием 7  , при этом в записи оказалось     12  цифр 6  . При каком минимальном целом положительном X  это возможно?

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

В этой задаче нам нужно найти минимальное положительное число X  , такое что выражение 3435 + 73 − 1 − X  в 7-ричной системе счисления содержит ровно 12 цифр 6  . Для этого мы начинаем с организации перебора всех возможных значений X  с помощью цикла for x in range(1, 10000000), начиная с 1, так как ищем минимальное положительное значение. Для каждого значения X  вычисляем число       5    3
k = 343 + 7 − 1− X  в десятичной системе. Далее нам необходимо подсчитать количество цифр 6  в 7-ричной записи этого числа. Вместо явного преобразования числа в строку с основанием 7 мы используем деление с остатком: пока k ⁄= 0  , проверяем, равен ли остаток от деления на 7 цифре 6 с помощью k % 7 == 6, и если да, увеличиваем счётчик counter на 1. После проверки каждой цифры число уменьшается целочисленным делением на 7 k //= 7, чтобы перейти к следующей цифре. Когда все цифры проверены, сравниваем количество найденных шестерок с 12: если counter == 12, значит текущее X  удовлетворяет условию, и мы выводим его через print(x) и прерываем цикл командой break, так как нам требуется минимальное значение.

# Перебор возможных значений X, начиная с 1
for x in range(1, 10000000):
    # Вычисляем выражение в десятичной системе: k = 343̂5 + 7̂3 - 1 - X
    k = 343**5 + 7**3 - 1 - x
    # Инициализируем счётчик цифр 6 в 7-ричной записи
    counter = 0
    # Пока число не равно нулю, проверяем каждую цифру в 7-ричной записи
    while k != 0:
        # Если последняя цифра равна 6, увеличиваем счётчик
        counter += k % 7 == 6
        # Убираем последнюю цифру (делим на 7 целочисленно)
        k //= 7
    # Если найдено ровно 12 цифр 6, выводим текущий X и прерываем цикл
    if counter == 12:
        print(x)
        break

Ответ: 400

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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