Sequence GCD

 You are given an integer sequence 

A=(A1,A2,,AN) of length N and an integer M such that 0M<i=1NAi.

An integer sequence B=(B1,B2,,BN) of length N is called good if:

  • 0BiAi for each 1iN
  • B1+B2++BN=M

Find the maximum value of gcd(A1B1,A2B2,,ANBN) over all good sequences B. Here, gcd denotes the greatest common divisor.

Note: gcd(a,b,c)=gcd(a,gcd(b,c)) and gcd(a,0)=gcd(0,a)=a.

Input Format

  • The first line of input contains a single integer T, denoting the number of test cases. The description of T test cases follows.
  • The first line of each test case contains two space-separated integers N,M.
  • The second line of each test case contains N space-separated integers A1,A2,,AN.

Output Format

For each test case, print a single line containing one integer — the maximum value of gcd(A1B1,A2B2,,ANBN) over all good sequences B.

Constraints

  • 1T10
  • 1N105
  • 1Ai105
  • 0M<i=1NAi

Subtasks

Subtask #1 (50 points): 1N104

Subtask #2 (50 points): Original constraints

Sample Input 1 

4
4 4
1 3 5 7
4 4
5 5 5 5
4 0
4 6 9 12
6 10
15 9 3 8 14 17

Sample Output 1 

3
4
1
7

Explanation

Test case 1: The optimal strategy is to take B=(1,0,2,1). The answer is gcd(11,30,52,71)=gcd(0,3,3,6)=3.

Test case 2: The optimal strategy is to take B=(1,1,1,1). The answer is gcd(51,51,51,51)=gcd(4,4,4,4)=4.

Previous
Next Post »