728x90
반응형
문제:
양의 정수 n개가 주어졌을 때, 가능한 모든 쌍의 GCD의 합을 구하는 프로그램을 작성하시오.
입력:
첫째 줄에 테스트 케이스의 개수 t(1<=t<=100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n(1<n<=100)가 주어지고, 다음에는 n개의 수가 주어진다. 입력으로 주어지는 수는 1000000을 넘지 않는다.
출력:
각 테스트 케이스마다 가능한 모든 쌍의 GCD의 합을 출력한다.
풀이 방법:
조건에 주어진대로 수행만하면 되는 문제다. 주어진 n개의 수 중에 겹치지 않게 2개를 뽑고 그 값의 gcd를 구하고 배열에 더한 뒤에 sum을 하면 구할 수 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
def gcd(n,m):
while(m!=0):
n,m=m,n%m
return n
for i in range(int(input())):
numbers=list(map(int,input().split()))[1:]
answers=[]
for j in range(len(numbers)):
for l in range(j+1,len(numbers)):
answer=gcd(numbers[j],numbers[l])
answers.append(answer)
print(sum(answers))
|
cs |
문제 링크:
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
[BOJ]10825. 국영수 (0) | 2019.09.04 |
---|---|
[BOJ]1373. 2진수 8진수 (0) | 2019.09.03 |
[BOJ]2011. 암호코드 (0) | 2019.09.01 |
[BOJ]2133. 타일 채우기 (0) | 2019.08.31 |
[BOJ]1699. 제곱수의 합 (0) | 2019.08.30 |