Đếm GCD 2

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: 1800 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho dãy \(a\) gồm \(n\) số nguyên và hai số nguyên \(k\), \(g\).

Yêu cầu: Hãy đếm số cách chọn \(k\) chỉ số \(1 \leq i_1 < i_2 < \ldots < i_k \leq n\)\(\gcd(a_{i_1}, a_{i_2}, \ldots, a_{i_k}) = g\).

Input

  • Dòng đầu tiên chứa ba số nguyên \(n\), \(k\)\(g\) \((1 \leq k \leq n \leq 10^6, 1 \leq g \leq 10^6)\).
  • Dòng tiếp theo chứa \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) \((1 \leq a_i \leq 10^6)\).

Output

  • Chứa một số nguyên là đáp án của bài toán sau khi chia lấy dư cho \(10^9 + 7\).

Example

Test 1

Input
6 2 2
1 2 3 4 5 6
Output
3

Bình luận

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

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