枚举暴力解决水题,直接上代码~( ̄▽ ̄~)~。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int i,n,t,k=0,j,sum,a[1000005];
cin>>t;
while(t--){
cin>>n;
k=max(k,n);
a[n]++;
}
for(i=k;i>=1;i--)
{ sum=0;
for(j=i;j<=k;j+=i)
{ sum+=a[j];
if(sum>=2)
break;
}
if(sum>=2)
break;
}
cout<<i<<endl;
return 0;
}
//此题从最大的开始往下枚举(从而保证第一次枚举到的就是最大的),知道出现当前枚举数的倍数在原数组中且有2个以上时跳出,从而使n方的复杂度简化到n的复杂度。