本题求两个公约数不为1的数,可使用gcd(a,b)求出公约数然后暴力过关。 下面是代码:

#include<bits/stdc++.h>
#define int long long
int a[200005];
using namespace std;
signed main(){
	int T;
	cin>>T;
	while(T--){
		int n,flag=0;
		cin>>n;
		for(int i=1;i<=n;i++){
			cin>>a[i];
		}
		for(int i=1;i<n;i++){
			for(int j=i+1;j<=n;j++){
				if(gcd(a[i],a[j])!=1){
					cout<<a[i]<<" "<<a[j]<<endl;
					flag=1;
					break;
				}
			}
			if(flag==1)break;
		}
		if(flag==0)cout<<-1<<endl;
	}
}