Thi thử Olympic 30/4 2025 - Number of love

Xem dạng PDF

Gửi bài giải

Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: love.inp
Output: love.out

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch, TEXT

Trong ngày lễ tình yêu, ông Bụt mang tới cho các cặp đôi một số nguyên dương ~n~. Được biết một cặp số tình yêu là một cặp gồm 2 số nguyên dương ~(u, v)~ (với ~u \le v~) sao cho ~\gcd(u, v)~ không chia hết cho ~n~.

Để giành được tình cảm của crush, các bạn cần đếm xem có bao nhiêu cặp số tình yêu mà giá trị ~u, v~ nằm trong đoạn ~[l, r]~. Nói cách khác, bài toán yêu cầu đếm số cặp ~(u, v)~ thỏa mãn ~l \le u \le v \le r~ và ~\gcd(u, v)~ không chia hết cho ~n~.

Được biết bạn là thần đồng tin học, ông Bụt mang tới ~Q~ bộ câu hỏi như thế và thách thức bạn.

Input:

Nhập từ tệp LOVE.INP:

  • Dòng đầu tiên chứa một số nguyên ~Q~ — số truy vấn (~1 \le Q \le 10^5~).
  • Mỗi truy vấn gồm ba số nguyên dương ~l, r, n~ (~1 \le l \le r \le 10^{18}~, ~1 \le n \le 10^{18}~).

Output:

Xuất ra tệp LOVE.OUT:

  • Gồm ~Q~ dòng, mỗi dòng là kết quả của truy vấn tương ứng khi chia lấy dư cho ~10^9 + 7~.

Subtasks

Subtask Điểm Ràng buộc
1 ~10~ ~Q \le 10~, ~n \le 1000~, ~l \le r \le 10^3~
2 ~15~ ~Q \le 1000~, ~n \le 1000~, ~l \le r \le 10^3~
3 ~15~ ~Q \le 1000~, ~n \le 10^6~, ~l \le r \le 10^6~
4 ~15~ ~n \le 5 \times 10^6~, ~l \le r \le 5 \times 10^6~
5 ~15~ ~n~ là số nguyên tố.
6 ~30~ Không có ràng buộc gì thêm.

Sample Input

1
3 5 2

Sample Output

5

Giải thích

Các cặp số ~(u,v)~ với ~3 \le u \le v \le 5~ là: ~(3,3), (3,4), (3,5), (4,4), (4,5), (5,5)~.

  • ~\gcd(3,3) = 3~ không chia hết cho ~2~.
  • ~\gcd(3,4) = 1~ không chia hết cho ~2~.
  • ~\gcd(3,5) = 1~ không chia hết cho ~2~.
  • ~\gcd(4,4) = 4~ chia hết cho ~2~. (Loại)
  • ~\gcd(4,5) = 1~ không chia hết cho ~2~.
  • ~\gcd(5,5) = 5~ không chia hết cho ~2~.

Các cặp số thoả mãn là: ~(3,3), (3,4), (3,5), (4,5), (5,5)~. Có tổng cộng 5 cặp.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.