Program C untuk Mencari GCD dua Nombor

Contoh cara berbeza untuk mengira GCD dua integer (untuk bilangan bulat positif dan negatif) menggunakan gelung dan pernyataan membuat keputusan.

Untuk memahami contoh ini, anda harus mempunyai pengetahuan mengenai topik pengaturcaraan C berikut:

  • Pengendali Pengaturcaraan C
  • C untuk Gelung
  • C jika… lain Penyataan
  • C sambil dan buat … sambil Gelung

HCF atau GCD dua bilangan bulat adalah bilangan bulat terbesar yang dapat membahagikan kedua-dua nombor dengan tepat (tanpa baki).

Terdapat banyak cara untuk mencari pembahagi umum paling hebat dalam pengaturcaraan C.

Contoh # 1: GCD Menggunakan untuk gelung dan jika Penyataan

 #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 pemboleh ubah n1 dan n2. Kemudian, forgelung diulang hingga i kurang dari n1 dan n2.

Dalam setiap lelaran, jika kedua n1 dan n2 dapat dibahagikan dengan tepat oleh i, nilai i ditetapkan kepada gcd.

Apabila forgelung selesai, pembahagi biasa yang paling besar dari dua nombor disimpan dalam pemboleh ubah gcd.

Contoh # 2: GCD Menggunakan while loop dan jika… lain Pernyataan

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

Pengeluaran

 Masukkan dua bilangan bulat positif: 81 153 GCD = 9

Ini adalah kaedah yang lebih baik untuk mencari GCD. Dalam kaedah ini, bilangan bulat yang lebih kecil ditolak dari bilangan bulat yang lebih besar, dan hasilnya diberikan kepada pemboleh ubah yang memegang bilangan bulat yang lebih besar. Proses ini diteruskan sehingga n1 dan n2 sama.

Dua program di atas berfungsi sebagaimana mestinya hanya jika pengguna memasukkan bilangan bulat positif. Berikut adalah sedikit pengubahsuaian contoh kedua untuk mencari GCD bagi bilangan bulat positif dan negatif.

Contoh # 3: GCD untuk nombor 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; )

Pengeluaran

 Masukkan dua bilangan bulat: 81 -153 GCD = 9

Anda juga boleh menggunakan rekursi untuk mencari GCD.

Artikel menarik...