2004.Bash Plays with Functions

Time Limit: 1s Memory Limit: 256MB

Bash got tired on his journey to become the greatest Pokemon master. So he decides to take a break and play with functions.

Bash defines a function f0(n), which denotes the number of ways of factoring n into two factors p and q such that gcd(p,q)=1. In other words, f0(n) is the number of ordered pairs of positive integers (p,q) such that p \cdot q=n and gcd(p,q)=1.

But Bash felt that it was too easy to calculate this function. So he defined a series of functions, where fr+1 is defined as:

2004_1.png

Where (u,v) is any ordered pair of positive integers, they need not to be co-prime.

Now Bash wants to know the value of fr(n) for different r and n. Since the value could be huge, he would like to know the value modulo 109+7. Help him!

Input Format(From the terminal/stdin)

The first line contains an integer q (1 \le q \le 106)- the number of values Bash wants to know.

Each of the next q lines contain two integers r and n (0 \le r \le 106, 1 \le n \le 106), which denote Bash wants to know the value fr(n).

Output Format(To the terminal/stdout)

Print q integers. For each pair of r and n given, print fr(n) modulo 109+7 on a separate line.

Sample Input

Copy
5
0 30
1 25
3 65
2 5
4 48
 \n
 ·  \n
 ·  \n
 ·  \n
 · \n
 ·  \n

Sample Output

Copy
8
5
25
4
630
 \n
 \n
  \n
 \n
   \n

Submit

请先 登录

© 2025 FAQs