Trong chương trình này, bạn sẽ học cách tìm GCD của hai số trong Kotlin. Điều này được thực hiện bằng cách sử dụng vòng lặp while với sự trợ giúp của câu lệnh if else.
HCF hoặc GCD của hai số nguyên là số nguyên lớn nhất có thể chia chính xác cả hai số (không có phần dư).
Ví dụ 1: Tìm GCD của hai số bằng vòng lặp while
fun main(args: Array) ( val n1 = 81 val n2 = 153 var gcd = 1 var i = 1 while (i <= n1 && i <= n2) ( // Checks if i is factor of both integers if (n1 % i == 0 && n2 % i == 0) gcd = i ++i ) println("G.C.D of $n1 and $n2 is $gcd") )
Khi bạn chạy chương trình, đầu ra sẽ là:
GCD của 81 và 153 là 9
Ở đây, hai số có GCD cần tìm được lưu trữ lần lượt là n1 và n2.
Sau đó, một vòng lặp while được thực hiện cho đến khi i nhỏ hơn cả n1 và n2. Bằng cách này, tất cả các số từ 1 đến nhỏ nhất trong hai số được lặp lại để tìm GCD.
Nếu cả n1 và n2 đều chia hết cho i thì gcd được đặt thành số. Điều này tiếp tục cho đến khi nó tìm thấy số lớn nhất (GCD) chia cả n1 và n2 mà không có dư.
Không giống như Java, bạn không thể sử dụng vòng lặp for với các điều kiện cho vấn đề này. Đây là mã Java tương đương: Chương trình Java để Tìm GCD của hai số.
Có một giải pháp thay thế tốt hơn để tìm GCD trong Kotlin như sau:
Ví dụ 2: Tìm GCD của hai số (Cách khác Tốt hơn)
fun main(args: Array) ( var n1 = 81 var n2 = 153 while (n1 != n2) ( if (n1> n2) n1 -= n2 else n2 -= n1 ) println("G.C.D = $n1") )
Khi bạn chạy chương trình, đầu ra sẽ là:
GCD = 9
Đây là cách tốt hơn để tìm GCD. Trong phương pháp này, số nguyên nhỏ hơn bị trừ khỏi số nguyên lớn hơn và kết quả được gán cho biến chứa số nguyên lớn hơn. Quá trình này được tiếp tục cho đến khi n1 và n2 bằng nhau.
Hai chương trình trên chỉ hoạt động như dự định nếu người dùng nhập số nguyên dương. Đây là một chút sửa đổi của ví dụ thứ hai để tìm GCD cho cả số nguyên dương và số nguyên âm.
Ví dụ 3: GCD cho cả số dương và số âm
fun main(args: Array) ( var n1 = 81 var n2 = -153 // Always set to positive n1 = if (n1> 0) n1 else -n1 n2 = if (n2> 0) n2 else -n2 while (n1 != n2) ( if (n1> n2) n1 -= n2 else n2 -= n1 ) println("G.C.D = $n1") )
Khi bạn chạy chương trình, đầu ra sẽ là:
GCD = 9