Программа на C для поиска НОД двух чисел

Примеры различных способов вычисления НОД двух целых чисел (как для положительных, так и для отрицательных целых чисел) с использованием циклов и операторов принятия решений.

Чтобы понять этот пример, вы должны знать следующие темы программирования на C:

  • Операторы программирования на C
  • C для цикла
  • C if… else Заявление
  • C while и do … while Цикл

HCF или GCD двух целых чисел - это наибольшее целое число, которое может точно разделить оба числа (без остатка).

Существует много способов найти наибольший общий делитель в программировании на C.

Пример # 1: Использование GCD для цикла и оператора if

 #include int main() ( int n1, n2, i, gcd; printf("Enter two integers: "); scanf("%d %d", &n1, &n2); for(i=1; i <= n1 && i <= n2; ++i) ( // Checks if i is factor of both integers if(n1%i==0 && n2%i==0) gcd = i; ) printf("G.C.D of %d and %d is %d", n1, n2, gcd); return 0; ) 

В этой программе два целых числа, введенные пользователем, сохраняются в переменных n1 и n2. Затем forцикл повторяется до тех пор, пока i не станет меньше n1 и n2.

На каждой итерации, если и n1, и n2 точно делятся на i, значение i присваивается gcd.

Когда forцикл завершается, наибольший общий делитель двух чисел сохраняется в переменной gcd.

Пример №2: GCD с использованием цикла while и оператора if… else

 #include int main() ( int n1, n2; printf("Enter two positive integers: "); scanf("%d %d",&n1,&n2); while(n1!=n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) printf("GCD = %d",n1); return 0; )

Вывод

 Введите два положительных целых числа: 81 153 GCD = 9.

Это лучший способ найти GCD. В этом методе меньшее целое число вычитается из большего целого числа, а результат присваивается переменной, содержащей большее целое число. Этот процесс продолжается до тех пор, пока n1 и n2 не станут равными.

Две указанные выше программы работают по назначению, только если пользователь вводит положительные целые числа. Вот небольшая модификация второго примера, чтобы найти НОД как для положительных, так и для отрицательных целых чисел.

Пример # 3: НОД для положительных и отрицательных чисел

 #include int main() ( int n1, n2; printf("Enter two integers: "); scanf("%d %d",&n1,&n2); // if user enters negative number, sign of the number is changed to positive n1 = ( n1> 0) ? n1 : -n1; n2 = ( n2> 0) ? n2 : -n2; while(n1!=n2) ( if(n1> n2) n1 -= n2; else n2 -= n1; ) printf("GCD = %d",n1); return 0; )

Вывод

 Введите два целых числа: 81-153 НОД = 9.

Вы также можете использовать рекурсию для поиска GCD.

Интересные статьи...