第一行為測資有幾組資料 N (1<N<100)
接下來的N行是第N組資料
每組資料都有M個數字 (1<M<100) 讓你去找其中的最大的一對GCD值
3 10 20 30 40 7 5 12 125 15 25
20 1 25
C++:
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int gcd(int a,int b){
while(b!=0){
int temp=b;
b=a%b;
a=temp;
}
return a;
}
int main(){
int n; //一開始輸入的筆數
int t; //利用 stringstream轉整數
string s;
cin>>n;
getline(cin,s);
for(int i=0;i<n;i++){
getline(cin,s);
stringstream ss(s);
vector <int> v;
while(ss>>t) v.push_back(t); //把數字推進去vector
/*for(int j=0;j<v.size();j++){
cout<<v[j]<<"\n";
}*/
/*輸入完成*/
int mx=0;
for(int k=0;k<v.size();k++){
for(int l=k+1;l<v.size();l++){
/*瓊舉找GCD最大數*/
mx=max(mx,gcd(v[k],v[l]));
}
}
cout<<mx<<"\n";
}
return 0;
}
python:
import math n=int(input()) for _ in range(n): arr=list(map(int,input().split())) mx=0 for i in range(len(arr)): for j in range(i+1,len(arr)): mx=max(mx,math.gcd(arr[i],arr[j])) print(mx)