Найти наибольший общий делитель - C (СИ)

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

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

Заданные четыре натуральные числа a, b, c, d. Найти их наибольший общий делитель.(через функцию)

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

textual
Листинг программы
#include <stdio.h>
 
void swap(int* a, int* b)
{
    int t;
    t = *a, *a = *b, *b = t;
}
 
int gcd(int a, int b)
{
    while (a % b)
        swap(&(a %= b), &b);
    return b;
}
 
int main()
{
    int a, b, c, d;
    puts("Input four number:");
    scanf("%d%d%d%d", &a, &b, &c, &d);
    printf("%d", gcd(gcd(gcd(a, b), c), d));
    return 0;
}

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

  1. Включаем заголовочный файл для использования функций ввода-вывода
  2. Определяем функцию swap(int, int) для обмена значениями двух указателей на int
  3. Используем функцию swap(&(a %= b), &b) для обмена значениями переменных a и b, если a не делится на b без остатка
  4. Возвращаем значение переменной b в качестве наибольшего общего делителя
  5. Запрашиваем у пользователя ввод четырех чисел с помощью функции scanf
  6. Вызываем функцию gcd(gcd(gcd(a, b), c), d) для нахождения наибольшего общего делителя четырех чисел
  7. Выводим результат на экран с помощью функции printf

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


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

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

7   голосов , оценка 4.286 из 5
Похожие ответы