C Program untuk Menemukan GCD dari dua Angka

Contoh tentang cara berbeda untuk menghitung PBT dari dua bilangan bulat (untuk bilangan bulat positif dan negatif) menggunakan loop dan pernyataan pengambilan keputusan.

Untuk memahami contoh ini, Anda harus memiliki pengetahuan tentang topik pemrograman C berikut ini:

  • Operator Pemrograman C
  • C untuk Loop
  • Pernyataan C if… else
  • C sementara dan lakukan… saat Loop

HCF atau GCD dari dua bilangan bulat adalah bilangan bulat terbesar yang dapat membagi kedua angka dengan tepat (tanpa sisa).

Ada banyak cara untuk mencari pembagi persekutuan terbesar dalam pemrograman C.

Contoh # 1: GCD Menggunakan for loop dan if Statement

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

Dalam program ini, dua bilangan bulat yang dimasukkan oleh pengguna disimpan dalam variabel n1 dan n2. Kemudian, forloop diulang sampai i kurang dari n1 dan n2.

Dalam setiap iterasi, jika n1 dan n2 sama persis habis dibagi i, nilai i ditetapkan ke gcd.

Ketika forpengulangan selesai, pembagi persekutuan terbesar dari dua angka disimpan dalam variabel gcd.

Contoh # 2: GCD Menggunakan while loop dan pernyataan 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; )

Keluaran

 Masukkan dua bilangan bulat positif: 81153 GCD = 9

Ini adalah cara yang lebih baik untuk menemukan GCD. Dalam metode ini, bilangan bulat yang lebih kecil dikurangi dari bilangan bulat yang lebih besar, dan hasilnya diberikan ke variabel yang memiliki bilangan bulat yang lebih besar. Proses ini dilanjutkan hingga n1 dan n2 sama.

Kedua program di atas berfungsi sebagaimana mestinya hanya jika pengguna memasukkan bilangan bulat positif. Berikut sedikit modifikasi dari contoh kedua untuk mencari PBT untuk bilangan bulat positif dan negatif.

Contoh # 3: PBT untuk bilangan positif dan negatif

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

Keluaran

 Masukkan dua bilangan bulat: 81 -153 GCD = 9

Anda juga dapat menggunakan rekursi untuk menemukan GCD.

Artikel yang menarik...