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

НСД-визначник

НСД-визначник

Вася нещодавно вивчив визначники і тепер хоче застосувати їх в галузі теорії чисел. Він склав матрицю \textbf{n}×\textbf{n}, у якій у \textbf{i}-ому рядку на місці \textbf{j} стоїть число \textbf{НСД(i, j)}. Наприклад, при \textbf{n = 3} отримаємо визначник: \includegraphics{https://static.e-olymp.com/content/6b/6b10b496d71c801bf217b94dd2b83f47f2b6edb2.jpg} Тепер Васі потрібно обчислити значення визначника цієї матриці, але ця задача виявилась йому не під силу, і тепер Ви повинні розв'язати її. Так як визначник може виявитись достатньо великим, Вася просить порахувати його по модулю \textbf{500009}. \InputFile У першому рядку вхідного файлу міститься кількість тестів \textbf{t} (\textbf{1} ≤ \textbf{t} ≤ \textbf{100000}). Кожен наступний рядок містить число \textbf{n} -- порядок визначника (\textbf{1} ≤ \textbf{n} ≤ \textbf{10^9}). \OutputFile Для кожного тесту виведіть значення відповідного визначника по модулю \textbf{500009}.
Ліміт часу 2 секунди
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
3
2
3
5
Вихідні дані #1
1
2
16
Автор Євген Служаєв