题意:求所有数对的gcd的最大值
解析:单独题意没什么难度,唯一的难点是没有给出m,也就是读入个数不确定,这里可以读入字符串后用快读来模拟,但也可以用stringstream,非常高级的一种用法,需要注意的一点是使用getline时也存在缓冲区的问题,需要视情况多读一个。
代码:
#include <bits/stdc++.h>
#define x first
#define y second
#define mid (l+r>>1)
#define lo (o<<1)
#define ro (o<<1|1)
using namespace std;
typedef long long ll;
typedef vector<int>vi;
typedef pair<int,int>pii;
struct tri{int x,y,z;};
const int inf=0x3f3f3f3f;
const ll linf=0x3f3f3f3f3f3f3f3f;
const int N=1e5+10;
const ll mod=1e9+7;
const double PI=acos(0)*2;
ll arr[N];
int solve()
{
string s;
while(s.empty())//防止缓冲区读入空字符串
getline(cin,s);
stringstream ss;
ss<<s;
int cnt;
for(cnt=0;ss>>arr[cnt];cnt++);
ll ret=1;
for(int i=0;i<cnt;i++)
for(int j=i+1;j<cnt;j++)
ret=max(ret,__gcd(arr[i],arr[j]));
return ret;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
// freopen("in.txt","r",stdin);
int _;cin>>_;
while(_--)
cout<<solve()<<endl;
return 0;
}