boj)9613 - GCD 합

2020. 9. 15. 22:17PS/boj

import java.io.*;
import java.util.StringTokenizer;

// # GCD 합
public class boj_9613 {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
    static int[] arr;

    public static void main(String[] args) throws IOException {
        int t = Integer.parseInt(br.readLine());

        for (int i = 0; i < t; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int n = Integer.parseInt(st.nextToken());
            long ans = 0;

            arr = new int[n];
            for (int j = 0; j < n; j++) {
                arr[j] = Integer.parseInt(st.nextToken());
            }

            for (int j = 0; j < n-1; j++) {
                for (int k = j+1; k < n; k++) {
                    ans += gcd(arr[j], arr[k]);
                }
            }

            bw.write(ans + "\n");
        }

        bw.flush();
        bw.close();
    }

    static int gcd (int a, int b) {
        if (b == 0) return a;
        else return gcd(b, a%b);
    }
}

 

- 정답 ans를 long으로 선언해줘야함 

- int로 해서 틀렸었음, 조금 의심들면 그냥 long 쓰자

'PS > boj' 카테고리의 다른 글

boj)1373 - 2진수 8진수  (0) 2020.09.16
boj)17087 - 숨바꼭질 6  (0) 2020.09.15
boj)1676 - 팩토리얼 0의 개수  (0) 2020.09.15
boj)6588 - 골드바흐의 추측  (0) 2020.09.15
boj)1929 - 소수 구하기  (0) 2020.09.15