eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Перестановки по модулю

Перестановки по модулю

По заданному натуральному числу n вычислите количество перестановок (p1, p2, ..., pn) чисел от 1 до n, таких что для каждого i (1in), имеет место следующее свойство: pi mod pi+12, где pn+1 = p1.

Поскольку ответ может быть большим, выведите его по модулю 109 + 7.

Входные данные

Одно целое число n (1n106).

Выходные данные

Выведите одно целое число - количество перестановок, удовлетворяющих условию задачи по модулю 109 + 7.

Пример

Например, для n = 4 Вы посчитаете перестановку [4, 2, 3, 1] так как 4 mod 2 = 02, 2 mod 3 = 22, 3 mod 1 = 02, 1 mod 4 = 12. Однако перестановка [3, 4, 1, 2] посчитана не будет, так как 3 mod 4 = 3 > 2, что противоречит условию задачи.

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
1
Выходные данные #1
1
Входные данные #2
2
Выходные данные #2
2
Входные данные #3
3
Выходные данные #3
6
Входные данные #4
4
Выходные данные #4
16
Входные данные #5
5
Выходные данные #5
40
Входные данные #6
1000000
Выходные данные #6
581177467
Источник 2020 SEERC South Eastern European Regional Programming Contest, Винница и Бухарест, Май 23, Задача I