TỔNG QUAN
CẤU TRÚC ĐIỀU KHIỂN
VÒNG LẶP
CHUỖI VÀ MẢNG
COLLECTIONS
THƯ VIỆN QUAN TRỌNG
HƯỚNG ĐỐI TƯỢNG
XỬ LÝ LUỒNG
EXCEPTION
LÀM VIỆC VỚI FILE
THAM KHẢO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Java - Tìm ước số chung lớn nhất và bội số chung nhỏ nhất của 2 số nguyên dương.

Viết chương trình nhập vào 2 số nguyên dương, tìm và in ra màn hình ước số chung lớn nhất và bội số chung nhỏ nhất của 2 số nguyên dương nhập từ bàn phím.

test php

Bài giải

-------------------- ######## --------------------

Bài giải
package vong_lap_while;

import java.util.Scanner;

public class TimUSCLNVaBSCNN {

	public static void main(String[] args) {
		int firstNumber, secondNumber, temp1, temp2, uscln, bscnn;
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("Nhập vào số thứ nhất: ");
		firstNumber = scanner.nextInt();
		System.out.println("Nhập vào số thứ hai: ");
		secondNumber = scanner.nextInt();
		
		while ((firstNumber <= 0) || (secondNumber <= 0)) {
			System.out.println("Nhập lại hai số nguyên dương!");
			System.out.println("Nhập vào số thứ nhất: ");
			firstNumber = scanner.nextInt();
			System.out.println("Nhập vào số thứ hai: ");
			secondNumber = scanner.nextInt();
		}
		
		// tìm ước số chung lớn nhất
		temp1 = firstNumber;
		temp2 = secondNumber;
		while (temp1 != temp2) {
			if (temp1 > temp2) {
				temp1 -= temp2;
			} else {
				temp2 -= temp1;
			}
		}
		uscln = temp1;
		
		System.out.println("Ước số chung lớn nhất của " + firstNumber + " và " + secondNumber + " = " + uscln);
		System.out.println("Bội số chung lớn nhất của " + firstNumber + " và " + secondNumber + " = " + 
				((firstNumber * secondNumber) / uscln));
	}

}

Kết quả sau khi biên dịch chương trình:

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

timusclnbscnn PNG

Giải thích hoạt động của chương trình trên: Trong chương trình này, tôi nhập vào hai số 8 và 16 thì trình biên dịch sẽ thực hiện các bước như sau:

Bước 1: Kiểm tra thấy hai số này thỏa mãn điều kiện là số nguyên dương nên bỏ qua phần kiểm tra while ((firstNumber <= 0) || (secondNumber <= 0)) và thực hiện các lệnh bên dưới.

Bước 2: Gán giá trị biến temp1 = 16 temp2 = 56.

Bài viết này được đăng tại [free tuts .net]

Bước 3:  Kiểm tra điều kiện bên trong while: Vì 16 != 56 nên sẽ thực thi lệnh bên trong while. Lúc này 16 < 56 nên lệnh bên trong else sẽ được thực hiện và lúc này biến temp2 = 40.

Bước 4: Quay lại bước 3, vì 16 != 40 nên sẽ thực thi lệnh bên trong while. Lúc này 16 < 40 nên lệnh bên trong else sẽ được thực hiện và lúc này biến temp2 = 24 .

Bước 5: Quay lại bước 3, vì 16 != 24 nên sẽ thực thi lệnh bên trong while. Lúc này 16 < 24 nên lệnh bên trong else sẽ được thực hiện và lúc này biến temp2 = 8 .

Bước 5: Quay lại bước 3, vì 16 != 8 nên sẽ thực thi lệnh bên trong while. Lúc này 16 > 8 nên lệnh bên trong if sẽ được thực hiện và lúc này biến temp2 = 8 .

Bước 6: Quay lại bước 3, lúc này while (temp1 != temp2) sẽ trả về kết quả là sai. Lúc này vòng lặp kết thúc và ước số chung lớn nhất của 2 số này sẽ bằng 8.

Trong bài tập này, tôi có một đoạn code như sau:

while ((firstNumber <= 0) || (secondNumber <= 0)) {
	System.out.println("Nhập lại hai số nguyên dương!");
	System.out.println("Nhập vào số thứ nhất: ");
	firstNumber = scanner.nextInt();
	System.out.println("Nhập vào số thứ hai: ");
	secondNumber = scanner.nextInt();
}
Đoạn code này dùng trong trường hợp số bạn nhập vào không thỏa mãn điều kiện > 0 thì chương trình sẽ yêu cầu bạn nhập lại. Hình minh họa như sau:

timusclnbscnnloi PNG

 

Câu hỏi thường gặp liên quan:

Cùng chuyên mục:

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn Upload file với Spring Boot và jQuery Ajax trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn download file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn Upload file với Spring Boot trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Hướng dẫn CRUD với Spring Boot, REST và AngularJS trong Java

Cách sử dụng Spring  Scheduled trong Spring Boot

Cách sử dụng Spring Scheduled trong Spring Boot

Cách dùng Groovy trong Spring Boot Java

Cách dùng Groovy trong Spring Boot Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và Mustache trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách dùng Spring Boot và MongoDB trong Java

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Cách tạo Restful Client bằng RestTemplate trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Hướng dẫn sử dụng Interceptor trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Sử dụng Twitter Bootstrap trong Spring Boot

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo trang web đa ngôn ngữ với Spring Boot trong Java

Tạo ứng dụng Chat với Spring Boot và Websocket

Tạo ứng dụng Chat với Spring Boot và Websocket

Sử dụng JUnit để tạo unit test trong Spring Boot

Sử dụng JUnit để tạo unit test trong Spring Boot

Cách triển khai Spring Boot trên Tomcat Server

Cách triển khai Spring Boot trên Tomcat Server

Cách test RESTful API trong Spring Boot

Cách test RESTful API trong Spring Boot

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Top