Ctrl K

Рассадка взаимно простых гостей

Средняя
За столом guests мест с номерами от 1 до guests, и столько же гостей с номерами от 1 до guests. Каждого гостя нужно посадить ровно на одно место, на каждом месте — ровно один гость. Хозяин суеверен: гость с номером j может сидеть на месте i, только если i и j взаимно просты, то есть их наибольший общий делитель равен 1. Посчитайте, сколько существует рассадок, где это правило выполнено для всех мест.
Пример 1
guests=4 → 4

На места 2 и 4 годятся только нечётные гости 1 и 3 — это 2 варианта. Оставшиеся гости 2 и 4 взаимно просты и с 1, и с 3, их можно посадить на места 1 и 3 двумя способами. Итого 2 · 2 = 4.

Пример 2
guests=2 → 1

Гость 2 не может сидеть на месте 2, поэтому подходит только рассадка [2, 1].

Пример 3
guests=1 → 1
Ограничения
  • 1 ≤ guests ≤ 12
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКвадратная рамка из палочек СредняяРассадка с делимостью СредняяСамая дешёвая корзина с наборами СредняяГруппы с равными суммами СредняяМеньше всего пешком до самокатов Средняя
загружаем Python…
Вход
guests=4
Ожидается
4

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 15 тестов на сервере, включая скрытые.