CSES 3169 - Counting LCM Arrays
1.0s 512M給定兩個整數 \(n\) 與 \(k\),你的任務是計算有多少個由正整數組成的陣列 \(a_1, a_2,\dots, a_n\),滿足對所有 \(1 \le i < n\) 都有 \(\operatorname{lcm}(a_i, a_{i+1}) = k\)。
輸入格式
第一行有一個整數 \(t\):測試案例的數量。
接下來 \(t\) 行各有兩個整數 \(n\) 和 \(k\):陣列的長度與最小公倍數的值。
輸出格式
輸出 \(t\) 個整數:每個測試案例的答案對 \(10^9 + 7\) 取餘數的結果。
範例輸入 1
3
3 4
4 6
1337 42
範例輸出 1
11
64
602746233
說明:第一個測試案例的陣列有 \([1, 4, 1]\)、\([1, 4, 2]\)、\([1, 4, 4]\)、\([2, 4, 1]\)、\([2, 4, 2]\)、\([2, 4, 4]\)、\([4, 1, 4]\)、\([4, 2, 4]\)、\([4, 4, 1]\)、\([4, 4, 2]\) 與 \([4, 4, 4]\)。
限制
- \(1 \le t \le 1000\)
- \(2 \le n \le 10^9\)
- \(1 \le k \le 10^9\)
題目來源
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入