Найти наибольший общий делитель для заданной последовательности чисел - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дано натуральное число n и натуральные числа a1, a2, ..., an. Найти наиболее больший общий делитель для заданной последовательности. Рекомендовано применение алгоритма Евклида.

Решение задачи: «Найти наибольший общий делитель для заданной последовательности чисел»

textual
Листинг программы
  1. #include<stdio.h>
  2.  
  3. int NOD(int,int);
  4.  
  5. int main(){
  6.     int n,i,a[120],delytel;
  7.    
  8.     delytel=NOD(a[0],a[1]);
  9.     for(i=2;i<n;i++)
  10.     delytel=NOD(a[i],delytel);
  11.     printf("delytel=%d",delytel);
  12.     return 0;
  13. }
  14.  
  15. int NOD(int x,int y){
  16.     metka:
  17.     if(x==0) return y;
  18.     if(y==0) return x;
  19.     (x>y)?  x%=y: y%=x;
  20.     goto metka;
  21.     }

Объяснение кода листинга программы

  1. Включаем стандартную библиотеку ввода-вывода
  2. Объявляем функцию NOD, которая принимает два целых числа и находит их наибольший общий делитель
  3. В функции main объявляем переменные: — n - количество чисел в массиве ai - счётчик для цикла — a - массив для чисел — delytel - временная переменная для хранения НОД
  4. Вызываем функцию NOD для первых двух чисел из массива a и сохраняем результат в delytel
  5. В цикле от 2 до n-1 проходим по всем элементам массива a
  6. Для каждого числа в массиве вызываем функцию NOD с этим числом и текущим значением delytel
  7. Выводим значение delytel на экран
  8. Возвращаем 0 из функции main, чтобы указать, что программа успешно завершилась

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы