본문 바로가기

코딩/Python

[Python] 백준 9613 GCD합

반응형

코드 작성

import math
n = int(input())
for _ in range(n):
    k = list(map(int, input().split()))
    sum = 0
    for i in range(1,len(k)):
        for j in range(i+1, len(k)):
            sum += math.gcd(k[i],k[j])
    print(sum)

코드  풀이

#1. GCD(Greatest Common Divisor)

최대 공약수는 math 모듈을 불러와서 파이선에 내장되어 있는 함수를 사용한다.

cf) LCM(Least Common Multiple): 최소공배수

 

#2. i와 i+1비교

k의 리스트중 0번째를 제외한 1번째부터 비교할텐데

1번째와 2,3,4번째

2번째와 3,4,번째

3번째와 4번째

이렇게 반복하기 위해 for문을 2번 사용한다.

    for i in range(1,len(k)):
        for j in range(i+1, len(k)):
            sum += math.gcd(k[i],k[j])

#3.

gcd의 값을 sum에 계속 추가하면서 그 합을 구한다.

반응형

'코딩 > Python' 카테고리의 다른 글

[Python] 백준 1463 1로만들기  (0) 2022.11.20
[Python] 10808 알파벳 개수  (0) 2022.11.19
[Python] 백준 11655 ROT13  (0) 2022.11.19
[Python] 백준 11656 접미사 배열  (0) 2022.11.19
[Python] 백준 9020 골드바흐의 추측  (0) 2022.11.19