티스토리 뷰
문제링크 : 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;
}
주어진 값에 대한 최대공약수를 구하고, 이러한 모든 최대공약수 합을 구하는 문제이다.
입력받은 값을 배열로 저장하고, 현재 값 기준 나머지 값들과의 최대 공약수를 모두 구해서 구해주면된다.
'백준 > 실버' 카테고리의 다른 글
[백준 13241]번 최소공배수 (C++) (0) | 2025.03.30 |
---|---|
[백준 24313번] 알고리즘 수업 - 점근적 표기 1 (C++) (0) | 2025.03.27 |
[백준 2485번] 가로수 (C++) (0) | 2025.03.27 |
[백준 1735번] 분수 합 (C++) (0) | 2025.03.27 |
[백준 6603번] 로또 (C++) (0) | 2025.03.21 |