728x90
문제 출처: https://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 math
num = int(input())
for i in range(num):
arr = list(map(int, input().split()))
sum = 0
for j in range(arr[0]-1):
for x in range(j+1, arr[0]):
sum += math.gcd(arr[j+1],arr[x+1])
print(sum)
코드 해설에 들어가기전에 gcd는 최대공약수입니다!
1. 테스트 케이스의 개수를 num에 입력
2. arr에 테스트 케이스를 입력
3. 이중 for문으로 각각 수의 최대공약수를 sum에 덧셈
4. sum출력
위의 4단계로 걸쳐서 정답을 찾았습니다
제 코드에서 유의할 점은 마지막 gcd부분에서 j+1, x+1을 제대로 세팅해야 답을 찾을 수 있습니다!
728x90
'코딩 > 백준' 카테고리의 다른 글
[백준/파이썬/수학] 2501번 약수 구하기 코딩테스트 연습풀이 브론즈3 (0) | 2022.03.28 |
---|---|
[백준/파이썬/수학] 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰 코딩테스트 연습풀이 브론즈5 (0) | 2022.03.27 |
[백준/파이썬/수학] 2960번 에라토스테네스의 체 코딩테스트 연습풀이 실버4 (0) | 2022.03.27 |
[백준/파이썬/수학] 2420번 사파리월드 코딩테스트 연습풀이 브론즈4 (0) | 2022.03.26 |
[백준/파이썬/수학] 5565번 영수증 코딩테스트 연습풀이 브론즈3 (0) | 2022.03.25 |