close
Content
給你n個正整數,你需要去找他們所有之中最大的一對GCD值 (greatest common divisor)
Input

第一行為測資有幾組資料 N (1<N<100)

接下來的N行是第N組資料

每組資料都有M個數字 (1<M<100) 讓你去找其中的最大的一對GCD值

 

Output
對於每組資料請輸出最大的一對GCD值
Sample Input #1
3
10 20 30 40
7  5 12
125 15 25
Sample Output #1
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)
arrow
arrow
    創作者介紹
    創作者 趴趴熊日常 的頭像
    趴趴熊日常

    資工趴趴熊的小天地

    趴趴熊日常 發表在 痞客邦 留言(0) 人氣()