CSES - Counting LCM Arrays | Đếm mảng theo LCM

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1900 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho hai số nguyên \(n\)\(k\), nhiệm vụ của bạn là đếm số mảng \(a_1, a_2,\dots, a_n\) gồm các số nguyên dương sao cho \(\operatorname{lcm}(a_i, a_{i+1}) = k\) với mọi \(1 \le i < n\).

Đầu vào

Dòng đầu tiên chứa một số nguyên \(t\): số lượng bộ kiểm thử.

\(t\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(n\)\(k\): độ dài của mảng và giá trị LCM.

Đầu ra

In ra \(t\) số nguyên: đáp án cho từng bộ kiểm thử modulo \(10^9 + 7\).

Constraints

  • \(1 \le t \le 1000\)

  • \(2 \le n \le 10^9\)

  • \(1 \le k \le 10^9\)

Example

Test 1

Input
3
3 4
4 6
1337 42
Output
11
64
602746233

Explanation

Các mảng của bộ kiểm thử đầu tiên là \([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]\).

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.