코딩테스트/백준
[백준] 9613번 : GCD 합 (Python)
알코딩
2024. 6. 13. 15:43
문제 : https://www.acmicpc.net/problem/9613
정수 N개가 주어졌을 때,
가능한 모든 쌍의 GCD의 합을 구하는 문제다.
import sys
# 유클리드 호제법으로 최대공약수 구하기
def gcd(N, M):
if(M == 0):
return N
return gcd(M, N%M)
input = sys.stdin.readline
T = int(input())
for _ in range(T):
N, *case = list(map(int, input().split())) # N
answer = 0
for i in range(N):
for j in range(i+1, N):
answer += gcd(case[i], case[j]) # 모든 쌍의 gcd 구하기
print(answer)
[문제풀이]

테스트 케이스의 수를 입력받고, 각 테스트 케이스마다 수의 개수 N개와 N개의 수를 입력받는다.
그 후 모든 쌍의 gcd를 유클리드 호제법으로 구하고, 그 값을 더하면 끝!