#include<stdio.h>
// 最大公因數
int gcd( int a , int b )
{
if ( b == 0 )
return a;
if ( a < b )
return gcd( b , a );
return gcd( b , a % b );
}
int main()
{
int n;
scanf( "%d" , &n );
getchar();
for ( int i = 0 ; i < n ; i++ )
{
int array[1000] = {0} , count = 0 , temp = 0 , max_gcd = 0;
char c;
while ( ( c = getchar() ) != EOF )
{
// 判斷數字是否結束 並儲存這個數
if ( c == ' ' || c == '\n' )
{
array[count++] = temp;
temp = 0;
}
// 把 temp * 10 後加上新讀取的下一個位數
else
temp = temp * 10 + ( c - '0' );
// 換行
if ( c == '\n' )
break;
}
// 用類似泡沫的方式 計算每組數字的公因數(會有需多重複 但效率已經夠了)
for ( int j = 0 ; j < count - 1 ; j++ )
for ( int k = j + 1 ; k < count ; k++ )
if ( gcd( array[j] , array[k] ) > max_gcd && array[j] != 0 && array[k] != 0 )
max_gcd = gcd( array[j] , array[k] );
printf( "%d\n" , max_gcd );
}
return 0;
}