本题求两个公约数不为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;
}
}

京公网安备 11010502036488号