코딩고치

[백준][수학]GCD 합 본문

백준 알고리즘 기초/수학

[백준][수학]GCD 합

코딩고치 2019. 9. 12. 18:42

정수 n개가 주어졌을 때, 가능한 모든 쌍의 최소공배수의 합을 구하는 문제. for문 중첩하면 쉽게 구할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream>
#include <vector>
using namespace std;
 
int GCD(int x, int y)
{
    if (y == 0)
        return x;
    else
        return GCD(y, x % y);
}
 
int main(void)
{
    int t;
    cin >> t;
 
    while (t--)
    {
        int n;
        cin >> n;
        long long sum = 0;
 
        vector<int> num(n);
 
        for (int i = 0; i < n; i++)
        {
            cin >> num[i];
        }
 
        for (int i = 0; i < n - 1; i++)
        {
            for (int j = i + 1; j < n; j++)
            {
                sum += GCD(num[i], num[j]);
            }
        }
        cout << sum << '\n';
    }
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

'백준 알고리즘 기초 > 수학' 카테고리의 다른 글

[백준][수학]-2진법  (0) 2019.09.13
[백준][수학]숨바꼭질  (0) 2019.09.12
[백준][수학]순열 0의 개수  (0) 2019.09.12
[백준][수학]팩토리얼 0의 개수  (0) 2019.09.11
[백준][수학]팩토리얼  (0) 2019.09.11
Comments