/ 알고리즘

여러 수의 최대공약수

알고리즘 여러 수의 최대공약수 최대공약수
https://4am.kr/-ec-97-ac-eb-9f-ac-ec-88-98-ec-9d-98-ec-b5-9c-eb-8c-80-ea-b3-b5-ec-95-bd-ec-88-98/

프로그램 명: mgcd

제한시간: 1 초
여러개의 수를 입력으로 받아 이 수들의 최대 공약수를 구하는 문제이다.

입력

첫 줄에는 수의 개수 n ( 1 <= n <= 100) 이 입력으로 주어진다. 다음 줄 에는 n 개의 수가 입력으로 주어진다. 주어지는 수는 1000 이하의 자연수이다.

출력

최대 공약수를 출력한다.

입출력 예

입력 4 8 16 80 20 출력 4

출처:dovelet

#include <iostream>
using namespace std;
int gcd(int a, int b)
{
    if (a % b == 0)
        return b;
    else
        return gcd(b, a % b);
}
int main()
{
    int n, num[102], r;
    cin >> n;
    for (int i = 0; i < n; i++)
        cin >> num[i];
    for (int i = 1; i < n + 1; i++) {
        num[i] = gcd(num[i], num[i - 1]);
    }
    cout << num[n - 1] << endl;
    return 0;
}