백준/실버
[백준 9613번] GCD 합 (C++)
게임개발기원
2025. 3. 27. 20:59
문제링크 : https://www.acmicpc.net/problem/9613
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int T, N;
int arr[101];
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> T;
while(T--)
{
cin >> N;
long long result = 0;
for(int i=0; i<N; i++) cin >> arr[i];
for(int i=0; i<N; i++)
{
for(int j=i+1; j<N; j++)
{
result += gcd(arr[i], arr[j]);
}
}
cout << result << "\n";
}
return 0;
}
주어진 값에 대한 최대공약수를 구하고, 이러한 모든 최대공약수 합을 구하는 문제이다.
입력받은 값을 배열로 저장하고, 현재 값 기준 나머지 값들과의 최대 공약수를 모두 구해서 구해주면된다.