Program C do znajdowania GCD dwóch liczb

Przykłady różnych sposobów obliczania GCD dwóch liczb całkowitych (zarówno dodatnich, jak i ujemnych liczb całkowitych) przy użyciu pętli i instrukcji decyzyjnych.

Aby zrozumieć ten przykład, powinieneś znać następujące tematy programowania w C:

  • Operatorzy programowania C.
  • C jak pętla
  • C if… else Statement
  • C while i zrób… while Loop

Wartość HCF lub GCD dwóch liczb całkowitych jest największą liczbą całkowitą, która może dokładnie podzielić obie liczby (bez reszty).

Istnieje wiele sposobów na znalezienie największego wspólnego dzielnika w programowaniu w C.

Przykład 1: GCD Używanie pętli for i instrukcji 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; ) 

W tym programie dwie liczby całkowite wprowadzone przez użytkownika są przechowywane w zmiennych n1 i n2, a następnie forpętla jest powtarzana, aż i będzie mniejsze niż n1 i n2.

W każdej iteracji, jeśli zarówno n1, jak i n2 są dokładnie podzielne przez i, wartość i jest przypisywana do gcd.

Kiedy forpętla jest zakończona, największy wspólny dzielnik dwóch liczb jest przechowywany w zmiennej gcd.

Przykład 2: GCD Używanie pętli while i instrukcji 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; )

Wynik

 Wpisz dwie dodatnie liczby całkowite: 81 153 GCD = 9

To lepszy sposób na znalezienie GCD. W tej metodzie mniejsza liczba całkowita jest odejmowana od większej liczby całkowitej, a wynik jest przypisywany zmiennej zawierającej większą liczbę całkowitą. Ten proces jest kontynuowany, aż n1 i n2 będą równe.

Powyższe dwa programy działają zgodnie z przeznaczeniem tylko wtedy, gdy użytkownik wprowadzi dodatnie liczby całkowite. Oto mała modyfikacja drugiego przykładu, aby znaleźć GCD zarówno dla dodatnich, jak i ujemnych liczb całkowitych.

Przykład 3: GCD dla liczb dodatnich i ujemnych

 #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; )

Wynik

 Wpisz dwie liczby całkowite: 81-153 GCD = 9

Możesz również użyć rekursji, aby znaleźć GCD.

Interesujące artykuły...