Задание 14. Информатика. ЕГЭ. Поляков-3568

Просмотры: 154
Изменено: 26 ноября 2024

(Е.А. Мирончик) Некоторое число \(X\) из десятичной системы счисления перевели в системы счисления с основаниями \(16\), \(8\) и \(4\). Часть символов при записи утеряна. Позиции утерянных символов обозначены символом \(*\): $$ X = *7*_{16} = 5*6_8 = ***1*_4 .$$ Определите число \(X\).

Решение:

Python


def conv4(n):
    ans = ''
    while n:
        ans = str(n % 4) + ans
        n //= 4
    return ans

alph = '0123456789ABCDEF'

for a in alph[1:]:
    for b in alph:
        n16 = f'{a}7{b}'
        n = int(n16, 16)
        n8 = oct(int(n))[2:]
        n4 = conv4(n)
        if len(n8) == 3 and n8[0] == '5' and n8[2] == '6' and len(n4) == 5 and n4[3] == '1':
            print(n)

Ответ: \(374\)