[백준] 9613 GCD 합.Java

조청유과·2023년 5월 31일
0

BOJ

목록 보기
84/128

문제

양의 정수 n개가 주어졌을 때, 가능한 모든 쌍의 GCD의 합을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 < n ≤ 100)가 주어지고, 다음에는 n개의 수가 주어진다. 입력으로 주어지는 수는 1,000,000을 넘지 않는다.

출력

각 테스트 케이스마다 가능한 모든 쌍의 GCD의 합을 출력한다.

Java

  • j != k 처리.
  • int result -> long result 변경.
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for (int i = 0; i < T; i++) {
            int n = sc.nextInt();
            int[] arr = new int[n];
            for (int j = 0; j < n; j++) {
                arr[j] = sc.nextInt();
            }

            long result = 0;
            for (int j = 0; j < n; j++) {
                for (int k = j; k < n; k++) {
                    if (j != k)
                        result += GCD(arr[j], arr[k]);
                }
            }
            System.out.println(result);
        }

    }
    public static int GCD(int a, int b) {
        if (b == 0) return a;
        return GCD(b, a%b);
    }

}

0개의 댓글

관련 채용 정보