#825. BIRTHDAY - Sinh nhật

Bộ nhớ: 256 MiB Thời gian: 500 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Trại hè tin học Thái Nguyên 2020 - Khối lớp 11

Hôm nay là sinh nhật của giáo sư X. Để đón sinh nhật mình, giáo sư X muốn mua bánh để mời các em học sinh trong trại hè Thái Nguyên. Giáo sư không muốn em học sinh nào phải buồn, vì vậy mỗi em trong đội tuyển sẽ được chia ít nhất một chiếc bánh.

Giáo sư X đã mua m chiếc bánh để chuẩn bị cho 𝑛 em học sinh trong trại hè, em học sinh thứ 𝑖 sẽ được chia 𝑎_𝑖 chiếc bánh. Mặt khác, giáo sư X không thích sự nhàm chán, vì vậy ông ấy muốn chia bánh sao cho không tồn tại số nguyên 𝑥 > 1 nào sao cho 𝑥 là ước của tất cả 𝑎_𝑖 .

Bạn hãy giúp giáo sư X đếm số lượng cách chia bánh khác nhau thỏa mãn điều kiện bài toán. Hai cách chia bánh được coi là khác nhau nếu tồn tại một học sinh nào đó nhận được số bánh khác nhau trong hai cách chia.

Để tăng độ khó của bài toán này, bạn cần giải quyết 𝑞 truy vấn, mỗi truy vấn gồm hai số nguyên dương là 𝑚 𝑛 .

Vì kết quả bài toán có thể rất lớn, bạn chỉ cần tìm kết quả bài toán theo modulo 10^9 + 7

Dữ liệu vào:

  • Dòng đầu tiên chứa một số nguyên dương 𝑞\ (1 ≤ 𝑞 ≤ 10^5) là số lượng truy vấn;
  • 𝑞 dòng tiếp theo, mỗi dòng chứa hai số nguyên dương 𝑚 𝑛 lần lượt là số lượng bánh giáo sư X chuẩn bị và số học sinh trong trại hè (1 ≤ 𝑛 ≤ 𝑚 ≤ 10^5) .

Dữ liệu ra:

  • In ra trên 𝑞 dòng kết quả của 𝑞 truy vấn theo modulo 10^9 + 7 .

Giới hạn:

  • Subtask \#1: 𝑞 = 1 𝑚 ≤ 20 ;
  • Subtask \#2: 𝑞 ≤ 5 𝑚, 𝑛 ≤ 500 ;
  • Subtask \#3: 𝑚 là số nguyên tố;
  • Subtask \#4: Không có ràng buộc gì thêm.

Ví dụ

Dữ liệu vào:
3
5 3
4 2
6 4
Dữ liệu ra:
6
2
10