137. НОД
Найти НОД
(наибольший общий делитель) n чисел.
Вход. Первая
строка содержит количество чисел n (1
< n < 101). Во второй строке
через пробел заданы n натуральных
чисел, каждое из которых не превышает 30000.
Выход. НОД
заданных чисел.
Пример входа |
Пример выхода |
2 15 25 |
5 |
НОД
Известно,
что
НОД (a1, a2, …, ai)
= НОД (НОД (a1, a2, …, ai - 1) , ai)
Будем
последовательно вычислять наибольший общий делитель двух, трех, …, n чисел.
Например, для четырех чисел имеет место равенство:
НОД (a1, a2, a3,
a4) = НОД (НОД (НОД (НОД (0,
a1), a2), a3),
a4)
Реализация алгоритма
Функция gcd вычисляет Наибольший Общий
Делитель.
int gcd(int a, int b)
{
return (!b) ? a : gcd(b, a % b);
}
Читаем входные данные и
последовательно находим НОД заданных n чисел.
res = 0;
scanf("%d", &n);
while (n--)
{
scanf("%d", &b);
res = gcd(res, b);
}
Выводим
ответ.
printf("%d\n", res);