n个数中寻找最大的gcd(ai , aj)
枚举因子d , 判断 d 2d 3d...出现次数是否>=2
const int maxn = 1000008 ;
int cnt[maxn] ;
int main(){
int t , n , i , j , d , x , mx , s ;
while(cin>>n){
memset(cnt , 0 , sizeof(cnt)) ;
mx = 1 ;
for(i = 1 ; i <= n ; i++){
scanf("%d" , &x) ;
cnt[x]++ ;
mx = max(mx , x) ;
}
s = 1 ;
for(d = 2 ; d <= mx ; d++){
t = 0 ;
for(i = d ; i <= mx ; i += d) t += cnt[i] ;
if(t >= 2) s = max(d , s) ;
}
cout<< s << endl ;
}
return 0 ;
}