Задача к ЕГЭ по информатике на тему «поиск основания системы счисления» №1

Определите число N  , для которого выполняется равенство 214N = 165N+1  .

Решение руками

Для начала нужно оба числа перевести в 10-ричную систему счисления.
214  = 2⋅N 2 + 1 ⋅N1 + 4⋅N 0 = 2N 2 + N + 4    N
                  2           1           0     2                          2 165N+1 = 1⋅(N + 1) + 6⋅(N + 1) + 5⋅(N + 1) = (N  + 2N + 1)+ (6N + 6)+ 5 = N + 8N + 12

Теперь решим уравнение:
   2           2 2N  + N + 4 = N  + 8N + 12
N 2 − 7N − 8 = 0
D = 49 + 32 = 81
     7+9 N1 =  2  = 8
N2 = 7−29 = − 1

Основание системы счисления должно быть положительным числом, так что в ответ берём число 8.

Решение программой

# В числе 214 - наибольшая цифра 4, значит N >= 5
# В числе 165 - наибольшая цифра 6, значит N+1 >= 7 (то есть N >= 6)
# Таким образом, будем перебирать N, начиная с 6

# Функция int умеет переводить числа максимум из 36-ричной СС,
# так что перебираем до 36 включительно для N+1, то есть до 35 включительно для N
for N in range(6, 36): # Перебираем основание системы счисления

    # Переводим оба числа в 10-ричную систему счисления
    a = int("214", N)
    b = int("165", N+1)
    if a == b: # Если оба числа равны в 10-ричной системе счисления
        print(N) # Выводим искомое основание N

Ответ: 8
Оцените статью
Я решу все!