https://www.acmicpc.net/problem/9613
9613번: GCD 합
첫째 줄에 테스트 케이스의 개수 t (1 ≤ t ≤ 100)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있다. 각 테스트 케이스는 수의 개수 n (1 < n ≤ 100)가 주어지고, 다음에는 n개의 수가 주어진
www.acmicpc.net
단순히 모든 수의 쌍을 골라서 최대공약수를 유클리드 호제법으로 구하고 더하면 되는 문제이다.
답이 int형 범위를 벗어날 수 있어 long long int를 사용해야 한다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int num[100];
int gcd(int a, int b)
{
if (!(a % b))
return b;
return gcd(b, a % b);
}
int main()
{
int n, t;
long long int count;
scanf("%d", &t);
for (int i = 1; i <= t; i++)
{
scanf("%d", &n);
count = 0;
for (int j = 0; j < n; j++)
{
scanf("%d", &num[j]);
}
for (int j = 0; j < n - 1; j++)
{
for (int p = j + 1; p < n; p++)
count += gcd(num[j], num[p]);
}
printf("%lld\n", count);
}
return 0;
}
'백준 문제 풀이' 카테고리의 다른 글
백준 11404번 플로이드 (0) | 2021.03.16 |
---|---|
백준 1967번 트리의 지름 (0) | 2021.03.16 |
백준 13305번 주유소 (0) | 2021.03.16 |
백준 15483번 최소 편집 (0) | 2021.03.16 |
백준 2197번 분해 반응 (0) | 2021.03.16 |