关于#java#的问题,请各位专家解答!

输入正整数n,然后输入n个正整数,按回车后,显示这n个正整数的最大公约数数值。
完全不会整,想知道怎么写

提供一个简单的,低效的思路:分别对每个数求它的公约数,然后对所有的公约数求交集,然后找到最大的那个;
做出来再慢慢想办法优化


import java.util.*;
public class A {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int arr[] = new int[n];
        for(int i = 0;i < n;i++){
            arr[i] = sc.nextInt();
        }
        sc.close();
        Arrays.sort(arr);
        boolean flag = true;
        for(int i = arr[0];i > 0;i--){
            for(int j = 0;j < n;j++){
                if(arr[j] % i != 0){
                    flag = false;
                    break;
                }
            }
            if(flag){
                System.out.println(i);
                break;
            }
        }
    }
}