5.02 Запись числа в другой системе счисления
Ошибка.
Попробуйте повторить позже
На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом:
1. Строится семеричная запись числа N
2. В начало записи (слева) дописывается остаток от деления числа N на 5, а в конец записи (справа) остаток от деления N на 3.Результат переводится из семеричной системы в десятичную и выводится на экран.
3. Результат переводится из семеричной системы в десятичную и выводится на экран.
Какое наибольшее трехзначное число может появиться на экране в результате работы этого алгоритма?
В данной задаче мы реализуем алгоритм преобразования числа N в новое число R, следуя описанию из условия. Сначала мы переводим число N в его запись в семеричной системе счисления. Для этого последовательно берём остаток от деления числа на 7 и добавляем эту цифру в начало строки, после чего делим число на 7 целочисленно, повторяя эти действия, пока число не станет равным нулю. Таким образом формируется строка s, содержащая семеричное представление числа N. Затем мы модифицируем эту строку, дописывая слева цифру, равную остатку от деления N на 5, и справа — цифру, равную остатку от деления N на 3. Полученную таким образом расширенную строку рассматриваем как число в семеричной системе и переводим обратно в десятичное число r с помощью функции int с основанием 7. После этого проверяем длину десятичной записи числа r, и если она равна 3, то выводим это число на экран. Таким образом, перебирая все числа N от 1 до 999, мы находим все трёхзначные числа, которые могут появиться в результате работы алгоритма, и среди них нужно определить максимальное.
for n in range(1, 1000): # Перебираем все натуральные числа от 1 до 999 включительно s = ’’ # Инициализируем пустую строку для записи числа N в семеричной системе счисления x = n # Создаём копию числа N для преобразований, чтобы не менять исходное значение while x > 0: # Цикл для построения семеричной записи числа N s = str(x % 7) + s # Добавляем остаток от деления на 7 в начало строки s x = x // 7 # Делим число x на 7 целочисленно для перехода к следующей цифре s = str(n % 5) + s + str(n % 3) # Приписываем слева остаток от деления N на 5, справа — остаток от деления на 3 r = int(s, 7) # Переводим полученную строку из семеричной системы в десятичное число r if len(str(r)) == 3: # Проверяем, что десятичная запись числа r состоит из трёх цифр print(r) # Выводим число r на экран
Специальные программы

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

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

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

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

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

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