由于对于任意一个单独的粘合剂,其组合粘合度就是它本身,即
gcd(ai)=ai,
因此在所有可能的组合中,取单个粘合剂的情况能够达到最大的粘合度。故所有组合中的最大组合粘合度为
max(a1,a2,…,an).
另一方面,对于多个数,其 gcd 具有如下性质:
#include <bits/stdc++.h>
using namespace std;
// 计算两个数的最大公因数
int gcd(int a, int b) {
    return b == 0 ? a : gcd(b, a);
}
int main() {
    int n;
    cin >> n;  // 读入粘合剂种数
    vector<int> a(n);  // 存储所有粘合剂的粘合度
    int min_gcd = 0, max_gcd = 0;
    
    // 读入粘合剂的粘合度,并计算最小值和最大值
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        min_gcd = gcd(min_gcd, a[i]);  // 计算所有粘合剂的最大公因数
        max_gcd = max(max_gcd, a[i]);  // 计算最大值
    }
    
    // 输出最小和最大粘合度
    cout << min_gcd << " " << max_gcd << endl;
    return 0;
}
import math
# 主函数
def main():
    n = int(input())  # 读取粘合剂的数量
    a = list(map(int, input().split()))  # 读取所有粘合剂的粘合度
    min_gcd = a[0]
    max_gcd = a[0]
    # 遍历所有粘合剂,更新最小值和最大公因数
    for i in range(1, n):
        min_gcd = math.gcd(min_gcd, a[i])
        max_gcd = max(max_gcd, a[i])
    
    # 输出最小和最大粘合度
    print(min_gcd, max_gcd)
# 调用主函数
if __name__ == "__main__":
    main()
import java.util.*;
public class Main {
    // 计算最大公因数
    public static int gcd(int a, int b) {
        while (b != 0) {
            int temp = a;
            a = b;
            b = temp % b;
        }
        return a;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();  // 读取粘合剂的数量
        int[] a = new int[n];
        
        // 读取所有粘合剂的粘合度
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();
        }
        
        int min_gcd = a[0];
        int max_gcd = a[0];
        // 遍历所有粘合剂,更新最小值和最大公因数
        for (int i = 1; i < n; i++) {
            min_gcd = gcd(min_gcd, a[i]);
            max_gcd = Math.max(max_gcd, a[i]);
        }
        // 输出最小和最大粘合度
        System.out.println(min_gcd + " " + max_gcd);
    }
}
        小红有n种粘合剂,第i种粘合剂的粘合度为a4。 他会从中挑选k(1≤k≤n)种粘合剂组合使用,记桃选的k种粘合剂依次为ab1,ab2...,abk,,那么,组合粘合变为所选粘合剂初始粘合度的最大公因数god(ab1,ab2,..,abk),当k=1时,此时组合粘合度为ab1
现在小红想询问搭配使用粘合剂的最低和最高粘合度为多少?
最大公因数,指两个整数共有约数中最大的一个。例如,12和30的公约数有1,2,3,6,其中最大的约数是6,因此god(12,30)=6。
第一行一个整数n(1≤n≤105),表示粘合剂种数。
第二行n个整数,第i个整数为ai(1≤a≤109),表示第i种粘合剂的粘合度。
两个整数,以空格隔开,分别表示对一个物品任意搭配使用粘合剂的最低和最高粘合度。
输入
3
2 4 6
输出
2 6