PRODUCT - Phép Nhân
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 2.0 giây
Giới hạn bộ nhớ: 256 megabyte
Đăng bởi: ami

          Ami là một nhà sáng tạo, mỗi ngày cậu đều tạo ra một dãy số có những quy luật đặc biệt. Và cứ mỗi quy luật đặc biệt tìm được, cậu lại sáng tạo ra được vô số dãy số khác nhau. Hôm nay Ami tìm ra một dãy số G có quy luật rất đơn giản. Nếu dãy số có độ dài là n và Ami chọn một số x bất kì thì tích các phần tử trong dãy G phải đúng bằng x và ước chung lớn nhất của trị tuyệt đối 2 số liên tiếp phải đúng bằng 1. Điều kiện đó có thể được viết lại như sau :

                                      G1 * G2 * G3 * …*Gn = x.

                                      Gcd(|ai| , |ai+1|) = 1với mọi i từ 1 đến n – 1.

          Ami cho các bạn độ dài n và số x, các bạn hãy đếm xem có bao nhiêu dãy số khác nhau độ dài n thỏa mãn điều kiện trên nhé. Hai dãy số là khác nhau nếu tồn lại một vị trí i mà tại đó 2 dãy số chứa 2 phần tử khác nhau. Vì kết quả có thể khá lớn nên Ami chỉ cần biết đáp án sau khi đã chia dư cho 109+7 thôi.

Dữ liệu vào

Dòng đầu là số nguyên dương q (q <= 105) là số câu hỏi mà Ami đưa ra.

Tiếp theo là q dòng, mỗi dòng chứa 2 số x và n (x , n <= 106) lần lượt là tích và độ dài dãy số.

Dữ liệu ra

Gồm q dòng là kết quả của câu hỏi tương ứng.

Ví dụ

Input

1

6 2

Output

8

Giải thích

Các dãy thỏa mãn điều kiện là |1 6| , |6 1| , |-1 -6| , |-6 -1| |2 3| |-2 -3| |3 2| |-3 -2|.

Back to Top