Algorithm/Online judge

[백준] 9613번 > GCD 합

민철킹 2021. 3. 13. 13:07

www.acmicpc.net/problem/9613

 

9613번: GCD 합

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

www.acmicpc.net

문제

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

입력

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

출력

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

예제 입력 1

3

4 10 20 30 40

3 7 5 12

3 125 15 25

예제 출력 1

70

3

35

 


풀이

 

import sys
from math import gcd
from itertools import combinations

t = int(sys.stdin.readline())
for _ in range(t):
    n, *nums = list(map(int, sys.stdin.readline().split()))
    answer = 0
    combi_list = list(combinations(nums, 2))
    for i,j in combi_list:
        answer += gcd(i,j)
    print(answer)
반응형

'Algorithm > Online judge' 카테고리의 다른 글

[백준] 14490번 > 백대열  (0) 2021.03.14
[백준] 7576번 > 토마토  (0) 2021.03.14
[백준] 2003번 > 수들의 합 2  (0) 2021.03.12
[백준] 4963번 > 섬의 개수  (0) 2021.03.12
[백준] 1991번 > 트리 순회  (0) 2021.03.12