Как решать 14 задание ЕГЭ по информатике 2026: все типы, алгоритмы и Python-шаблоны
14 задание ЕГЭ информатика почти всегда связано с системами счисления и вычислением значения выражения. Обычно нужно либо найти количество определённых цифр в записи числа в некотором основании, либо подобрать неизвестную цифру x так, чтобы выражение делилось на заданное число, либо найти максимальное/минимальное x при дополнительных условиях.
Главная фишка 14 задания: оно решается быстро, если вы знаете 2–3 универсальных шаблона на Python и умеете аккуратно работать с переводом в систему счисления.
Что встречается в 14 задании: все типы
Тип 1. Посчитать цифры в записи числа в основании p
Формулировка похожа на:
«Значение выражения … записали в системе счисления с основанием p. Сколько цифр с определённым свойством (например, больше 9 / равны 0 / нечётные)?»
Что делать:
вычислить значение выражения
перевести в основание p
посчитать нужные цифры
Тип 2. Неизвестная цифра x в записи чисел в основании p
Формулировка:
«Операнды записаны в системе с основанием p. В записи чисел переменной x обозначена неизвестная цифра. Найдите наибольшее x, при котором выражение кратно k. Затем найдите частное.»
Что делать:
перебрать x от p-1 до 0 (если ищем максимум)
подставить x в строку числа
перевести в десятичную систему
проверить делимость
вывести частное
Тип 3. Подбор x по условию о количестве нулей в записи
Формулировка:
«Выражение … – x записали в системе с основанием p. Найдите наибольшее x, при котором в записи числа ровно N нулей.»
Что делать:
перебрать x в заданном диапазоне
вычислить значение выражения
перевести в основание p
посчитать количество нулей
выбрать наибольшее подходящее x
База, которую нужно знать для 14 задания
Как переводить число в систему счисления p
Делим число на p и собираем остатки.
Шаблон Python:
def to_base(n, base):
digits = []
while n > 0:
digits.append(n % base)
n //= base
return digits[::-1] # список цифр слева направо
Если нужен текст (для подсчёта символов), можно сделать строку:
def to_base_str(n, base):
alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
s = ""
while n > 0:
s = alphabet[n % base] + s
n //= base
return s or "0"
Как решать 14 задание ЕГЭ информатика: универсальный алгоритм
Определите тип: “посчитать цифры”, “найти x”, “найти x по нулям”.
Всегда переводите все входные числа в десятичную систему через Python.
Для больших степеней используйте pow(a, b) или a ** b (Python выдерживает большие числа).
Запись числа в основании p получайте через функцию перевода.
Для подсчёта цифр работайте со списком цифр (это надёжнее, чем со строкой).
Тип 1: посчитать цифры с условием (пример + шаблон)
Пример логики: “найдите количество цифр больше 9 в записи в основании p”.
Решение:
def to_base_digits(n, base):
digits = []
while n > 0:
digits.append(n % base)
n //= base
return digits[::-1] if digits else [0]
Пример вычисления выражения
p = 27
value = 2 * (p ** 10) + 7 * (p ** 5) + 12345 # пример
digits = to_base_digits(value, p)
count = sum(1 for d in digits if d > 9)
print(count)
Важно:
цифры “больше 9” — это именно числовые значения цифр, а не символы.
Тип 2: неизвестная цифра x в основании p (шаблон “максимальный x”)
Частая модель: два числа с x, их сумма (или разность) кратна k.
Шаблон:
p = 29
k = 28
a_pattern = "923x874"
b_pattern = "524x6152"
best_x = None
best_value = None
for x in range(p - 1, -1, -1):
digit = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"[x]
a = int(a_pattern.replace("x", digit), p)
b = int(b_pattern.replace("x", digit), p)
value = a + b
if value % k == 0:
best_x = x
best_value = value
break
print(best_x, best_value // k)
Как применять:
если в условии “наибольшее x” — перебираем x по убыванию.
если “наименьшее x” — перебираем по возрастанию.
Частая ошибка:
забывают, что допустимые цифры в основании p — от 0 до p-1.
Тип 3: подобрать x по количеству нулей в записи (шаблон)
Шаблон:
def to_base_digits(n, base):
digits = []
while n > 0:
digits.append(n % base)
n //= base
return digits[::-1] if digits else [0]
base = 11
need_zeros = 60
Константная часть выражения:
const_value = 9 * (base ** 210) + 8 * (base ** 150) # пример структуры
best_x = None
for x in range(3000, 0, -1): # если нужно наибольшее x
value = const_value - x
digits = to_base_digits(value, base)
if digits.count(0) == need_zeros:
best_x = x
break
print(best_x)
Тонкость:
перевод может быть долгим, если перебор большой. Ускоряют так:
заранее считают const_value
используют список цифр, а не строку
быстро отсекают неподходящее (например, по последним разрядам, если умеете)
Частые ошибки в 14 задании
Путают основание системы и “цифры больше 9”: в основании 11 цифра 10 существует и это одна цифра.
Работают со строками и сравнивают символы вместо числовых значений.
Забывают про допустимые цифры для x (x не может быть равен основанию и выше).
Не переводят сантиметры в метры — это не сюда, но аналогичная ошибка: не переводят числа из основания p корректно.
Перебирают x “в неправильную сторону” и получают не максимум/минимум.
Советы easyknow
Держите 3 шаблона: “подсчёт цифр”, “перебор x на делимость”, “перебор x на нули”.
Переводите в основание через список цифр — так меньше ошибок.
Всегда проверяйте, что x в диапазоне 0..p-1.
Если задача на максимум — перебор по убыванию экономит время.
Эта статья — лишь фрагмент знаний. На платформе Easyknow вся подготовка становится системой: от большой коллекции материалов по разным предметам до домашних заданий с проверкой. Всё в одном месте, по вашему личному плану.