Задание №23 ЕГЭ: Динамическое программирование (Количество программ) (ID 9040) — Ответ, условие и разбор | СмартКИМ
Не нашли свое задание? Попробуйте КИМСканер для быстрого поиска решения по фото или тексту: Открыть КИМСканер
СмартКИМ ЕГЭ Информатика
Каталог №23 Вариант ЕГЭ Разбор в СмартКИМ

Задание №23: Динамическое программирование (Количество программ)

Задача #9040 Формат ЕГЭ 2026 1 первичный балл
Основные типы и прототипы задания №23:
Количество программ преобразования чисел Обязательные и избегаемые этапы траектории

Условие задания

(И. Карпачёв) У исполнителя имеются две команды, которые обозначены латинскими буквами:
A. Вычти 1
B. Раздели на наименьший простой делитель
Первая из этих команд уменьшает число на экране на 1. Вторая команда делит заменяет число на экране на его наименьший простой делитель. Эту команду можно применять только к составным числам, к простым числам и единице данная команда неприменима. Сколько существует команд, для которых при исходном числе 150 результатом является 7?
Ответ: 5724

Шаблон решения на Python

# === Задание 23: Динамическое программирование (Количество программ) ===
def f(cur, target, avoid=None):
    if cur > target or (avoid and cur == avoid): return 0
    if cur == target: return 1
    return f(cur + 1, target, avoid) + f(cur * 2, target, avoid)

# Траектория из A в B (через обязательную точку):
print("Количество программ:", f(2, 12) * f(12, 30))

Подготовка к ЕГЭ по информатике на 85+ баллов

В интерактивном тренажёре СмартКИМ вы можете решать варианты на время, писать и запускать код Python в браузере, работать с таблицами Excel и отслеживать свой классный рейтинг.