Програма C за намиране на GCD от две числа

Примери за различни начини за изчисляване на GCD на две цели числа (както за положителни, така и за отрицателни цели числа) с помощта на цикли и изявления за вземане на решения.

За да разберете този пример, трябва да имате познанията по следните теми за програмиране на C:

  • C Оператори за програмиране
  • C за Loop
  • C if… else Изявление
  • C докато и правя … докато Loop

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 са равни.

Горните две програми работят по предназначение само ако потребителят въведе положителни цели числа. Ето малка модификация на втория пример за намиране на GCD както за положителни, така и за отрицателни цели числа.

Пример # 3: GCD за положителни и отрицателни числа

 #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 GCD = 9

Можете също да използвате рекурсия, за да намерите GCD.

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