Многие слышали и использовали операцию нахождения наибольшего общего делителя. Обычно эта операция записывается как НОД(n, m). Но в этот раз Вадим решил рассмотреть числа, обратные к НОДу, то есть числа, равные 1 / НОД(n, m).
Эти числа очень заинтриговали Вадима, и он решил посчитать обратные к НОДу для всех пар чисел от 1 до N. К сожалению, это очень долгое занятие, поэтому Вадим просит вас помочь найти среднее арифметическое всех этих значений.
Исходные данные
В единственной строке вводится целое число N (1 ≤ N ≤ 107).
Результат
Выведите ответ на задачу по модулю 109 + 7. То есть если ваш ответ представляет из себя несократимую дробь p/q, то выведите такое целое x, что 0 ≤ x ≤ 109 + 6 и p ≡ q · x (mod 109 + 7).
Примеры
| исходные данные | результат |
|---|
2
| 833333340
|
3
| 805555562
|
1
| 1
|
Замечания
В первом примере есть три НОДа: НОД(1, 1) = 1, НОД(1, 2) = 1, НОД(2, 2) = 2. Среднее арифметическое обратных к этим НОДам равно:
(1/1 + 1/1 + 1/2) / 3 = 5 / 6
6 · 833333340 = 5000000040 = 5 · (10^9 + 7) + 5 ≡ 5 (mod 109 + 7)
Автор задачи: Вадим Баринов
Источник задачи: Квалификационный тур Уральского регионального чемпионата ICPC 2025