这做法强啊
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
int main()
{
int n,t,i,j,gcd1[100010],gcd2[100010],a[100010],maxn,ans;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
gcd1[0]=0;
gcd2[n+1]=0;
maxn=0;
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
gcd1[i]=gcd(gcd1[i-1],a[i]);
}
for(i=n;i>=1;i--)
gcd2[i]=gcd(gcd2[i+1],a[i]);
for(i=1;i<=n;i++)
{
ans=gcd(gcd2[i+1],gcd1[i-1]);
if(maxn<ans)
maxn=ans;
}
printf("%d\n",maxn);
}
}