输入正整数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;
}
}
}
}