Tìm ước chung lớn nhất trong Java
Trong bài này chúng ta sẽ thực hiện chương trình tìm ước chung lớn nhất trong Java bằng nhiều cách khác nhau. Qua đây sẽ giúp các bạn sáng tạo hơn trong lúc giải quyết các vấn đề.
Chúng ta sẽ thực hiện tất cả là 3 chương trình, chương trình thứ nhất sẽ sử dụng vòng lặp For, chương trình thứ hai sẽ sử dụng vòng lặp While và chương trình cuối cùng chúng ta sẽ lấy dữ liệu từ người dùng để tìm UCLN.
Để hiểu rõ được chương trình các bạn nên tìm hiểu trước về ước chung lớn nhất là số như thế nào.
Ví dụ 1: Chương trình tìm ước chung lớn nhất trong Java (vòng lặp For).
Trong ví dụ này chúng ta sẽ gán sẵn hai số là num1 = 55 và num2 = 121, sau đó dùng vòng lặp For để xét điều kiện cho hai số.
Bài viết này được đăng tại [free tuts .net]
public class UocChungLonNhat { public static void main(String[] args) { int num1 = 55, num2 = 121, gcd = 1; for(int i = 1; i <= num1 && i <= num2; i++) { if(num1%i==0 && num2%i==0) gcd = i; } System.out.printf("Ước chung lớn nhất của %d và %d là: %d", num1, num2, gcd); } }
Kết quả:
Ví dụ 2: Chương trình tìm ước chung lớn nhất trong Java (vòng lặp While).
Đây là một cách giải khác bằng vòng lặp While và chúng ta vẫn sẽ gán sẵn giá trị cho num1 và num2.
public class UocChungLonNhat { public static void main(String[] args) { int num1 = 55, num2 = 121; while (num1 != num2) { if(num1 > num2) num1 = num1 - num2; else num2 = num2 - num1; } System.out.printf("Ước chung lớn nhất là: %d", num2); } }
Kết quả:
Ví dụ 3: Chương trình tìm ước chung lớn nhất trong Java với hai số được nhập từ người dùng.
Trong chương trình này chúng ta sẽ lấy giữ liệu từ người dùng, cụ thể là người dùng sẽ nhập vào 2 số và chương trình sẽ thực hiện công việc tìm UCLN của 2 số đó.
import java.util.Scanner; public class UocChungLonNhat { public static void main(String[] args) { int num1, num2; Scanner scanner = new Scanner(System.in); System.out.print("Nhập số thứ nhất:"); num1 = (int)scanner.nextInt(); System.out.print("Nhập số thứ hai:"); num2 = (int)scanner.nextInt(); scanner.close(); while (num1 != num2) { if(num1 > num2) num1 = num1 - num2; else num2 = num2 - num1; } System.out.printf("Ước chung lớn nhất là: %d", num2); } }
Kết quả:
Như vậy là chúng ta đã thực hiện xong chương trình tìm ước chung lớn nhất bằng nhiều cách khác nhau. Chúc các bạn thực hiện thành công!!!