Найти НОД трех чисел - 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;
}

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

  1. Включаем необходимые заголовочные файлы
  2. Определяем тип данных для представления длинных чисел
  3. Создаем функцию для нахождения НОД двух чисел
  4. Устанавливаем начальное значение для переменных
  5. Вводим три числа с помощью функции scanf
  6. Вызываем функцию gcd, передавая ей в качестве аргументов НОД двух чисел и третье число
  7. Выводим результат на экран
  8. Проверяем значение результата. Если оно равно 1, выводим сообщение об отсутствии общего делителя. В противном случае выводим его значение.
  9. Завершаем программу

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


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

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

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