Coding Test/Baekjoon - Java

9613: GCD합

_jordy 2021. 2. 15. 11:09

www.acmicpc.net/problem/9613

 

9613번: GCD 합

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

www.acmicpc.net

입력된 n개의 수 모든 쌍의 GCD를 구한 후 합하는 문제

ex) 7 5 12 => (7,5)->1 (5,12)->1 (7,12)->1 ==> 1+1+1=3


import java.util.*;
 
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[] num= new int[n];
            
            for(int j=0;j<n;j++){
                num[j]=sc.nextInt();
                }
            
            long sum=0;
            for(int j=0;j<n-1;j++){
                for(int k=j+1;k<n;k++)
                    sum+= gcd(num[j],num[k]);
            }
            
            System.out.println(sum);
            
        }
            
    }
    
    public static long gcd(long a, long b) {
        if(b==0) return a;
        else return gcd(b,a%b);
    }
}

for문 돌릴 때 i,j,k 구분 잘 하기

 

'Coding Test > Baekjoon - Java' 카테고리의 다른 글

2745: 진법 변환  (0) 2021.02.15
11005: 진법 변환 2  (0) 2021.02.15
1850: 최대공약수  (0) 2021.02.15
1934: 최소공배수  (0) 2021.02.15
2609: 최대공약수와 최소공배수  (0) 2021.02.15