EasyKnow

Как решать 14 задание ЕГЭ по информатике 2026: все типы, алгоритмы и Python-шаблоны

14 задание ЕГЭ информатика почти всегда связано с системами счисления и вычислением значения выражения. Обычно нужно либо найти количество определённых цифр в записи числа в некотором основании, либо подобрать неизвестную цифру x так, чтобы выражение делилось на заданное число, либо найти максимальное/минимальное x при дополнительных условиях.
Главная фишка 14 задания: оно решается быстро, если вы знаете 2–3 универсальных шаблона на Python и умеете аккуратно работать с переводом в систему счисления.

Что встречается в 14 задании: все типы

Тип 1. Посчитать цифры в записи числа в основании p

Формулировка похожа на:
«Значение выражения … записали в системе счисления с основанием p. Сколько цифр с определённым свойством (например, больше 9 / равны 0 / нечётные)?»
Что делать:
  1. вычислить значение выражения
  2. перевести в основание p
  3. посчитать нужные цифры

Тип 2. Неизвестная цифра x в записи чисел в основании p

Формулировка:
«Операнды записаны в системе с основанием p. В записи чисел переменной x обозначена неизвестная цифра. Найдите наибольшее x, при котором выражение кратно k. Затем найдите частное.»
Что делать:
  1. перебрать x от p-1 до 0 (если ищем максимум)
  2. подставить x в строку числа
  3. перевести в десятичную систему
  4. проверить делимость
  5. вывести частное

Тип 3. Подбор x по условию о количестве нулей в записи

Формулировка:
«Выражение … – x записали в системе с основанием p. Найдите наибольшее x, при котором в записи числа ровно N нулей.»
Что делать:
  1. перебрать x в заданном диапазоне
  2. вычислить значение выражения
  3. перевести в основание p
  4. посчитать количество нулей
  5. выбрать наибольшее подходящее 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 задание ЕГЭ информатика: универсальный алгоритм

  1. Определите тип: “посчитать цифры”, “найти x”, “найти x по нулям”.
  2. Всегда переводите все входные числа в десятичную систему через Python.
  3. Для больших степеней используйте pow(a, b) или a ** b (Python выдерживает большие числа).
  4. Запись числа в основании p получайте через функцию перевода.
  5. Для подсчёта цифр работайте со списком цифр (это надёжнее, чем со строкой).

Тип 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” — это именно числовые значения цифр, а не символы.
Занятия с опытными репетиторами по информатике на удобной онлайн платформе Easyknow!

Тип 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)
Тонкость:
перевод может быть долгим, если перебор большой. Ускоряют так:
  1. заранее считают const_value
  2. используют список цифр, а не строку
  3. быстро отсекают неподходящее (например, по последним разрядам, если умеете)

Частые ошибки в 14 задании

  1. Путают основание системы и “цифры больше 9”: в основании 11 цифра 10 существует и это одна цифра.
  2. Работают со строками и сравнивают символы вместо числовых значений.
  3. Забывают про допустимые цифры для x (x не может быть равен основанию и выше).
  4. Не переводят сантиметры в метры — это не сюда, но аналогичная ошибка: не переводят числа из основания p корректно.
  5. Перебирают x “в неправильную сторону” и получают не максимум/минимум.

Советы easyknow

  1. Держите 3 шаблона: “подсчёт цифр”, “перебор x на делимость”, “перебор x на нули”.
  2. Переводите в основание через список цифр — так меньше ошибок.
  3. Всегда проверяйте, что x в диапазоне 0..p-1.
  4. Если задача на максимум — перебор по убыванию экономит время.

Эта статья — лишь фрагмент знаний. На платформе Easyknow вся подготовка становится системой: от большой коллекции материалов по разным предметам до домашних заданий с проверкой. Всё в одном месте, по вашему личному плану.

Переходите на платформу и получите скидку 40% на первый месяц занятий с репетитором. Скидка активируется сразу после регистрации.

2026-03-05 02:17 Информатика ЕГЭ