e-olymp 571. НОД

Задача

Найти НОД (наибольший общий делитель ) $n$ чисел.

Входные данные

Первая строка содержит количество чисел [latex]n \left(1 < n < 101\right)[/latex]. Во второй строке через пробел заданы [latex]n[/latex] натуральных чисел, каждое из которых не превышает [latex]30000[/latex].

Выходные данные

НОД заданных чисел.

Тесты

# Входные данные Выходные данные
1 3
5 7 2
1
2 2
45 10
5
3 4
27 90 15 9
3
4 2
40 64
8
5 3
8 8 8
8

Код

Решение задачи

Для того, чтобы решить задачу, нам необходимо создадим специальную функцию gcd, которая будет находить наибольший общий делитель двух заданных чисел. Т.к. чисел может быть более двух, то нам понадобится цикл, который поможет найти и сохранить НОД двух чисел в одну из изначально заданных переменных, чтобы в последствии искать НОД уже трёх чисел и т.д.

Ссылки

Условие задачи на e-olymp
Код решения на ideone

One thought on “e-olymp 571. НОД

    • А зачем Вам так жонглировать res=gcd (a, b); b=res;? Сразу положить в нужную переменную нельзя?
    • Поставьте, пожалуйста, пробелы с обоих сторон знаков операций. Не так страшно, но раз всё равно переделывать…
    • Решение ничего не решает. Вы просто словами описали программу, а не алгоритм. И то с неточностями. Например, Вы находите не gcd(a, b, c), gcd(gcd(a, b), c). И это правильно. Но нужно же написать об этом и пояснить, почему результат будет тот же.
    • Там, где в программе используется какой-то не очевидный трюк (например, здесь return a+b;) обязательно должно быть пояснение.
    • Если в теле цикла или условного оператора присутствует только один оператор, его можно не брать в фигурные скобки. А можно и брать. Вы так и делаете — то берете, то нет. Определитесь.
    • Вы не рекурсивно реализовали алгоритм Евклида. Либо опишите алгоритм, либо дайте ссылку на него.

    Когда человек пересказывает словами код, но не говорит об алгоритмах, которые реализованы, это производит плохое впечатление. Чаще всего преподаватель с этим сталкивается, когда студент-двоечник принес чужой код и ничего в нем не понимает. Это ведь не Ваш случай, правда?

Добавить комментарий