Найти наибольший общий делитель - 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;
- }
Объяснение кода листинга программы
- Включаем заголовочный файл
для использования функций ввода-вывода - Определяем функцию swap(int, int) для обмена значениями двух указателей на int
- Используем функцию swap(&(a %= b), &b) для обмена значениями переменных a и b, если a не делится на b без остатка
- Возвращаем значение переменной b в качестве наибольшего общего делителя
- Запрашиваем у пользователя ввод четырех чисел с помощью функции scanf
- Вызываем функцию gcd(gcd(gcd(a, b), c), d) для нахождения наибольшего общего делителя четырех чисел
- Выводим результат на экран с помощью функции printf
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д