İki Sayıdan oluşan OBEB'yi Bulmak için C Programı

Döngüler ve karar verme ifadeleri kullanarak iki tamsayının (hem pozitif hem de negatif tam sayılar için) OBEB hesaplamasının farklı yollarına ilişkin örnekler.

Bu örneği anlamak için, aşağıdaki C programlama konuları hakkında bilgi sahibi olmalısınız:

  • C Programlama Operatörleri
  • Döngü için C
  • C if… else İfadesi
  • C while and do … while Loop

İki tam sayının HCF veya GCD'si, her iki sayıyı da tam olarak bölen (kalan olmadan) en büyük tam sayıdır.

C programlamada en büyük ortak böleni bulmanın birçok yolu vardır.

Örnek 1: GCD for döngüsü ve if İfadesi kullanma

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

Bu programda, kullanıcı tarafından girilen iki tamsayı forn1 ve n2 değişkenlerinde saklanır ve daha sonra, i n1 ve n2'den küçük olana kadar döngü yinelenir.

Her yinelemede, hem n1 hem de n2 tam olarak i ile bölünebiliyorsa, i'nin değeri gcd'ye atanır.

Ne zaman fordöngü tamamlanır, iki rakamdan büyük ortak böleni değişken gcd saklanır.

Örnek 2: GCD while döngüsü ve if… else İfadesi kullanma

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

Çıktı

 İki pozitif tam sayı girin: 81153 GCD = 9

Bu, GCD'yi bulmanın daha iyi bir yoludur. Bu yöntemde, daha küçük tam sayı, büyük tam sayıdan çıkarılır ve sonuç, daha büyük tamsayıyı tutan değişkene atanır. Bu süreç n1 ve n2 eşit olana kadar devam eder.

Yukarıdaki iki program, yalnızca kullanıcı pozitif tamsayılar girerse amaçlandığı gibi çalışır. İşte hem pozitif hem de negatif tam sayılar için OBEB'yi bulmak için ikinci örnekte küçük bir değişiklik.

Örnek 3: Hem pozitif hem de negatif sayılar için OBEB

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

Çıktı

 İki tam sayı girin: 81-153 GCD = 9

GCD'yi bulmak için özyinelemeyi de kullanabilirsiniz.

Ilginç makaleler...