Để chuẩn bị cho cuộc thi quan trọng nhất năm, An đã học cách tìm số ước của một số và nhanh chóng hiểu được các thuật toán khác nhau. Sau đó, trong quá trình tự luyện tập, An quyết định tìm hiểu mối quan hệ giữa một số và số ước của nó.
Cho hai số nguyên dương ~n~ và ~k~, hãy tính số cặp số nguyên ~(x, y)~ với ~1 \leq x \leq y \leq n~ và thỏa mãn đẳng thức:
$$ k \times d(x) \times d(y) = x \times y $$
trong đó ~d(x), d(y)~ lần lượt là số ước nguyên dương của ~x~ và ~y~.
Bạn hãy giúp An tính số cặp ~(x, y)~ như vậy.
Dữ liệu vào
Vào từ tệp văn bản divi.inp
gồm một dòng chứa hai số nguyên dương ~n~ và ~k~ (~1 \leq n \leq 3 \times 10^5; 1 \leq k \leq 10^9~).
Kết quả ra
Ghi ra tệp văn bản divi.out
một số nguyên là số cặp số nguyên ~(x, y)~ cần tìm.
Ràng buộc
- Subtask ~1~ (~20\%~): ~1 \leq n \leq 100~.
- Subtask ~2~ (~20\%~): ~1 \leq n \leq 600~.
- Subtask ~3~ (~20\%~): ~1 \leq n \leq 4000~.
- Subtask ~4~ (~20\%~): ~1 \leq n \leq 10^4~.
- Subtask ~5~ (~20\%~): Không có thêm ràng buộc nào.
Ví dụ 1
Dữ liệu
8 3
Kết quả
2
Giải thích
Ta có ~n = 8~ và ~k = 3~. Có ~2~ cặp ~(x, y)~ thỏa mãn là ~(3, 8)~ và ~(6, 8)~. Chúng ta hãy kiểm tra ~2~ cặp này:
- Với cặp ~(x, y) = (3, 8)~: Số ~x = 3~ có ~2~ ước nguyên dương là ~1~ và ~3~, do đó ~d(x) = 2~. Số ~y = 8~ có ~4~ ước nguyên dương là ~1, 2, 4~ và ~8~, do đó ~d(y) = 4~. Vì ~k \times d(x) \times d(y) = 3 \times 2 \times 4 = 24~ và ~x \times y = 3 \times 8 = 24~ nên ~k \times d(x) \times d(y) = x \times y~.
- Với cặp ~(x, y) = (6, 8)~: Số ~x = 6~ có ~4~ ước nguyên dương là ~1, 2, 3~ và ~6~, do đó ~d(x) = 4~. Số ~y = 8~ có ~4~ ước nguyên dương là ~1, 2, 4~ và ~8~, do đó ~d(y) = 4~. Vì ~k \times d(x) \times d(y) = 3 \times 4 \times 4 = 48~ và ~x \times y = 6 \times 8 = 48~ nên ~k \times d(x) \times d(y) = x \times y~.
Ví dụ 2
Dữ liệu
25 9
Kết quả
6
Giải thích
Có 6 cặp cần tìm là: ~(9, 9), (9, 18), (9, 24), (18, 18), (18, 24)~ và ~(24, 24)~.
Bình luận