#P3910. GCD Determinant

GCD Determinant

Description

We say that a set S = {x1, x2, ..., xn} is factor closed if for any xi ∈ S and any divisor d of xi we have d ∈ S. Let’s build a GCD matrix (S) = (sij), where sij = GCD(xi, xj) – the greatest common divisor of xi and xj. Given the factor closed set S, find the value of the determinant:

D_n = \left|{\begin{array}{ccccc}gcd(x_1,x_1)&gcd(x_1,x_2)&gcd(x_1,x_3)&\cdots&gcd(x_1,x_n)\\gcd(x_2,x_1)&gcd(x_2,x_2)&gcd(x_2,x_3)&\cdots&gcd(x_2,x_n)\\gcd(x_3,x_1)&gcd(x_3,x_2)&gcd(x_3,x_3)&\cdots&gcd(x_3,x_n)\\\cdots&\cdots&\cdots&\cdots&\cdots\\gcd(x_n,x_1)&gcd(x_n,x_2)&gcd(x_n,x_3)&\cdots&gcd(x_n,x_n)\end{array}}\right|

Input

The input file contains several test cases. Each test case starts with an integer n (0 < n < 1000), that stands for the cardinality of S. The next line contains the numbers of S: x1, x2, ..., xn. It is known that each xi is an integer, 0 < xi < 2*10

9

. The input data set is correct and ends with an end of file.

Output

For each test case find and print the value Dn mod 1000000007.

2 
1 2 
3 
1 3 9 
4 
1 2 3 6
1 
12 
4

Source

Southeastern European Regional Programming Contest 2008