매일 Algorithm

신재원·2023년 5월 24일
2

Algorithm

목록 보기
129/243

백준 9613번

import java.util.Scanner;

public class problem434 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int test = in.nextInt(); // 테스트 갯수


        for (int i = 0; i < test; i++) {
            int num = in.nextInt();
            int[] arr = new int[num];

            for (int j = 0; j < num; j++) {
                arr[j] = in.nextInt();
            }

            long sum = 0;

            // 최대 공약수 누적 합
            for (int j = 0; j < num - 1; j++) {
                for (int k = j + 1; k < num; k++) {
                    sum += gcd(arr[j], arr[k]);
                }
            }
            System.out.println(sum);
        }
    }

    // 최대 공약수
    static int gcd(int a, int b) {
        if (b == 0) return a;
        return gcd(b, a % b);
    }

}

0개의 댓글