Найти НОД трех чисел - C (СИ)
Формулировка задачи:
Помогите, пожалуйста, с задачей по Си.
Нужно найти НОД трех целых чисел, что вводятся с клавиатуры. Если общий делитель равен 1, то вывести сообщении о его отсутствии.
Буду благодарен за помощь.
Решение задачи: «Найти НОД трех чисел»
textual
Листинг программы
#include <stdio.h> #include <locale.h> typedef long long ll_t; ll_t gcd(ll_t left, ll_t right) { left = left > 0 ? left : -left; right = right > 0 ? right : -right; while (left != right) { if (left > right) left -= right; else right -= left; } return right; } int main() { setlocale(LC_ALL, "Rus"); ll_t num1, num2, num3; printf("Введите число 1: "); scanf("%I64d", &num1); printf("Введите число 2: "); scanf("%I64d", &num2); printf("Введите число 3: "); scanf("%I64d", &num3); ll_t gcd3 = gcd(gcd(num1, num2), num3); printf("Общий делитель для чисел %I64d, %I64d, %I64d\n", num1, num2, num3); if (gcd3 == 1) printf("отсутствует\n"); else printf("Равен %I64d\n", gcd3); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем тип данных для представления длинных чисел
- Создаем функцию для нахождения НОД двух чисел
- Устанавливаем начальное значение для переменных
- Вводим три числа с помощью функции scanf
- Вызываем функцию gcd, передавая ей в качестве аргументов НОД двух чисел и третье число
- Выводим результат на экран
- Проверяем значение результата. Если оно равно 1, выводим сообщение об отсутствии общего делителя. В противном случае выводим его значение.
- Завершаем программу
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д