Задание №14 ЕГЭ по информатике: разбор, шаблоны кода Python и анти-примеры | СмартКИМ
СмартКИМ УДОБНАЯ ПОДГОТОВКА К ЕГЭ И ОГЭ
Задачи №14 Решать в тренажере Войти в СмартКИМ
ЕГЭ (1–27) ОГЭ (1–15) Python: шпаргалка
Быстрый переход по номерам и темам
Базовый (1 балл) Время: 2-4 мин Python int(s, base) Универсальный перевод Все задачи №{ topic_num } в каталоге

Задание №14. Позиционные системы счисления

Тема: Арифметические выражения в n-ичных СС, перебор неизвестных цифр x и y
Вычисление количества цифр в больших степенных выражениях или поиск неизвестных цифр x, y в позиционных уравнениях. На Python решается за 1 минуту.

1. Универсальный перевод в любую систему счисления:

def to_base(n, base):
    digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    if n == 0: return "0"
    res = ""
    while n > 0:
        res = digits[n % base] + res
        n //= base
    return res

Разновидности и прототипы задания на экзамене

Тип 1: Подсчет цифр в выражении (3^2026 - 9^100 + 27)
Перевод длинного числа в нужную систему счисления делением с остатком.
Тип 2: Уравнения с неизвестными цифрами x, y в СС с основанием N
Перебор x в `range(N)` с приведением строк через `int(..., N)`.

Боевой шаблон решения на Python

Запустить код в онлайн-песочнице
# === Боевой шаблон Задания №14 на Python ===

# Тип 1: Подсчет цифр в степенном выражении:
val = 4**120 + 2**300 - 64
# Переводим в 4-ичную систему счисления:
s = ""
while val > 0:
    s = str(val % 4) + s
    val //= 4

print("Количество троек в 4-ичной записи:", s.count('3'))

# Тип 2: Поиск неизвестной цифры x (СС с основанием 19):
# Выражение: 12x45_19 + 78x90_19 кратно 18
for x in range(19):
    # Превращаем x в 16-ричный/19-ричный символ:
    x_char = "0123456789ABCDEFGH"[x]
    
    num1 = int(f"12{x_char}45", 19)
    num2 = int(f"78{x_char}90", 19)
    total = num1 + num2
    
    if total % 18 == 0:
        print("Искомый x:", x, "Значение частного:", total // 18)
        break

Анти-примеры (Типичные ошибки vs Как делать правильно)

Как делать НЕ надо:
Ошибка: Перебирать range(20) при основании системы счисления 15
Цифра x не может быть больше или равна основанию СС!
Как делать ПРАВИЛЬНО:
Правильно: Диапазон перебора цифры строго от 0 до base-1: range(base)
ГРОБ

ГРОБ №14: Две неизвестные переменные x и y

Уравнение содержит две неизвестные цифры x и y.

Как обойти ловушку: Используйте вложенный цикл: `for x in range(base): for y in range(base):`.

Лайфхаки и подводные камни на экзамене:

  • Функция `int('12A45', 19)` встроена в Python и работает для любых систем счисления от 2 до 36!
Банк реальных задач №14 Открыть в тренажере СмартКИМ