Bài 3: (TS10 Quảng Ngãi - 2026)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python
Điểm: 1400 Thời gian: 1.0s Bộ nhớ: 1G Input: bàn phím Output: màn hình

Cho hai số nguyên dương \(n, k\) và dãy số gồm \(n\) số nguyên dương \(a_1, a_2, \dots, a_n\).

Yêu cầu: Tính số lượng cặp \((i, j)\) thỏa mãn (\(1 \le i < j \le n\)) sao cho tích \(a_i \cdot a_j\) chia hết cho \(k\).

Input

  • Dòng thứ nhất chứa hai số nguyên dương lần lượt là \(n, k\) (\(1 \le n, k \le 10^5\)).
  • Dòng thứ hai chứa \(n\) số nguyên dương \(a_1, a_2, \dots, a_n\) (\(1 \le a_i \le 10^9, 1 \le i \le n\)).
  • Các số trên cùng một dòng cách nhau bởi dấu cách.

Output

  • Ghi một số nguyên là kết quả thỏa mãn yêu cầu bài toán.

Scoring

  • Subtask \(1\) (\(60\%\) số điểm): \(n \le 10^3, k \le 10^3\).
  • Subtask \(2\) (\(40\%\) số điểm): \(n \le 10^5, k \le 10^5\).

Example

Test 1

Input
5 4
3 2 6 3 2
Output
3
Note

\(3\) cặp thỏa mãn đề bài là:

  • Cặp \((2, 3)\)\(a_2 \cdot a_3 = 2 \cdot 6 = 12\) chia hết cho \(4\).
  • Cặp \((2, 5)\)\(a_2 \cdot a_5 = 2 \cdot 2 = 4\) chia hết cho \(4\).
  • Cặp \((3, 5)\)\(a_3 \cdot a_5 = 6 \cdot 2 = 12\) chia hết cho \(4\).

Bình luận

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

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