Теория чисел (НОД, НОК, остатки) на Python: как решать + 17 задач с проверкой
Теория чисел в олимпиадах — это задачи про делимость, НОД (наибольший общий делитель), НОК (наименьшее общее кратное) и остатки по модулю. Она встречается в сюжетах про «срабатывания каждые m минут», упаковки по k штук, повторяющиеся циклы, последнюю цифру результата, ключи/фонари на равных расстояниях.
Как распознать, что здесь нужна именно она:
- в условии есть слова «кратно», «делится», «остаток», «последняя цифра», «каждые m», «повторяется через…»;
- нужно найти первый момент, когда два расписания совпадут (или понять, что не совпадут);
- ограничения большие (до 1e9), значит перебор по времени/числам не пройдёт;
- требуется ответ в 64-битном диапазоне (намёк на НОК и большие произведения).
Суть приёма: мы переводим сюжет в уравнения вида t кратно m и t даёт остаток r по модулю p. Дальше используем НОД: он показывает, какие остатки вообще достижимы, а НОК (или решение сравнений) — как найти минимальное подходящее t. Это ускоряет решение, потому что вместо поиска по всем t мы делаем несколько операций Евклида (НОД) и аккуратные вычисления.
С чего начать учиться:
- вспомнить алгоритм Евклида для НОД и как из него получить НОК:
lcm(a,b) = a/ gcd(a,b) * b(с защитой от переполнения); - научиться проверять существование решения для условий вида
t ≡ r (mod p)вместе сtкратноm; - тренировать «перевод текста в математику»: расписания → кратности и остатки;
- держать в голове 64-битные типы и порядок вычислений (делить до умножения).
Ниже — задачи с автопроверкой и разбором подхода по НОД/НОК и остаткам.
Задачи по теме «Теория чисел (НОД, НОК, остатки)»
- Взаимно простые номера в журнале — продвинутый
- Номер для школьной команды — продвинутый
- Шкафчики с секретом — базовый
- Городские часы: сколько цифр и какова их сумма — средний
- Контрольная без одного задания — продвинутый
- Фонари на каждой k-й улице — базовый
- Кристалл цифровой силы — базовый
- Общий день двух расписаний — базовый
- Общий размер плитки — базовый
- Проверка на простоту для школьного номера — базовый
- Сколько ключей подойдёт к сундуку — базовый
- Фонари на проспекте — базовый
- Последняя цифра супер-удара — средний
- Когда снова вместе — базовый
- Сколько ключей к шкафчику — средний
- Пакеты с конфетами — базовый
- Фонтаны с «сбитым» таймером — средний
Смежные темы
Куда дальше
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Родителям: подготовка бесплатно — сколько стоит репетитор, что даёт бесплатный маршрут и как понять, что ребёнок занимается
- Школьный этап ВсОШ по информатике — как устроен первый этап и план подготовки за четыре недели