Задание №4436. На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом. 1. Строится троичная запись числа N. 2. Далее эта запись обрабатывается по следующему правилу: а) если число N делится на 3, то к этой записи дописываются две последние троичные цифры; б) если число N на 3 не делится, то остаток от деления умножается на 5, переводится в троичную запись и дописывается в конец числа. Полученная таким образом запись является троичной записью искомого числа R. 3. Результат переводится в десятичную систему и выводится на экран. Например, для исходного числа 11 = 1023 результатом является число 1021013 = 307, а для исходного числа 6 = 203 это число 20203 = 60. Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, не меньшее 86.

Задание №4436.
Формальное исполнение простого алгоритма. ЕГЭ по информатике

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

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

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

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

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

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

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

Например, для исходного числа 11 = 1023 результатом является число 1021013 = 307, а для исходного числа 6 = 203 это число 20203 = 60.

Укажите минимальное число N, после обработки которого с помощью этого алгоритма получается число R, не меньшее 86.

Пояснение:
Решим задание, написав программу на языке программирования Python.

final_list = []

def ternary(n):
    if n == 0:
        return '0'
    nums = []
    while n:
        n, r = divmod(n, 3)
        nums.append(str(r))
    return ''.join(reversed(nums))

for n in range(1, 1000):
    ternary_n = ternary(n)
    if n % 3 == 0:
        ternary_n += ternary_n[-2:]
    else:
        ternary_n += ternary((n % 3) * 5)

    R = int(ternary_n, 3)
    if R >= 86:
        final_list.append(n)

print(min(final_list))

Таким образом, 5 — минимальное число N, после обработки которого с помощью этого алгоритма получается число R, не меньшее 86.

Показать ответ

Источник: ФИПИ. Открытый банк тестовых заданий
Сообщить об ошибке


Тест с похожими заданиями