Разбор 5.PNG

№ 10707 (Уровень: Средний)

(PRO100 ЕГЭ) На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.

  1. Строится шестеричная запись числа N.

  2. Далее эта запись обрабатывается по следующему правилу:

а) если число N делится на 3, то к этой записи дописываются две первые шестеричные цифры;

б) если число N на 3 не делится, то остаток от деления на 3 умножается на 10, переводится в шестеричную запись и дописывается в конец числа.

Полученная таким образом запись является шестеричной записью искомого числа R.

  1. Результат переводится в десятичную систему и выводится на экран.

Например, для исходного числа 11_10 результатом является число 416_10, а для исходного числа 12_10 это число 444_10.

Укажите минимальное число R, большее 680, которое может быть получено с помощью описанного алгоритма. В ответе запишите это число в десятичной системе счисления.

Untitled

Комментарии к решению:

  1. alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM') - Создание списка alphabet, содержащего отсортированные символы '0123456789QWERTYUIOPASDFGHJKLZXCVBNM', то есть 36-ный алфавит и все меньшие алфавиты.
  2. def my_convert(x, n): - Объявление функции my_convert с двумя аргументами x и n, где х переводимое число, а n - система счисления.
  3. s = '' - Инициализация пустой строки s, куда будем складывать остатки от деления.
  4. while x > 0: - Цикл while, который выполняется, пока x не станет нулем (мы же его делим).
  5. s += alphabet[x % n] - Добавление символа из списка alphabet, соответствующего остатку от деления x на n, в строку s, такой способ помогает нам складывать буквы вместо двузначных числе, например 10 == А.