Kiểm Tra Số Chính Phương Trong Java
Có thể bạn quan tâm
Hướng dẫn cách kiểm tra số chính phương trong Java. Bạn sẽ học được cách tạo phương thức kiểm tra số chính phương trong Java cũng như cách liệt kê tất cả các số chính phương nhỏ hơn n bằng Java sau bài học này.
Chúng ta có 2 phương pháp để kiểm tra số chính phương trong Java như sau:
- Kiểm tra số chính phương trong Java bằng lũy thừa
- Kiểm tra số chính phương trong Java bằng căn bậc 2
Số chính phương trong Java
Theo wikipedia thì khái niệm số chính phương như sau:
Số chính phương hay còn gọi là số hình vuông là số tự nhiên có căn bậc hai là một số tự nhiên, hay nói cách khác, số chính phương bằng bình phương của một số tự nhiên.
Khái niệm số chính phương trong Java cũng giống như trên. Chúng ta coi một số là số chính phương trong Java nếu như nó bằng bình phương của một số tự nhiên. Đây là chìa khóa thứ nhất giúp chúng ta có thể tìm được số chính phương trong Java.

Nói cách khác, căn bậc 2 của một số chính phương chính là một số tự nhiên. Đây là chìa khóa thứ 2 giúp chúng ta có thể tìm được số chính phương trong Java.
Kiểm tra số chính phương trong Java bằng lũy thừa
Cách đầu tiên để kiểm tra số chính phương trong Java là sử dụng khái niệm số chính phương bằng bình phương của một số tự nhiên.
Điều đó có nghĩa, với một số bất kỳ, nếu chúng ta có thể tìm được một số tự nhiên mà bình phương của nó bằng với số đã cho, thì số đó chính là số chính phương.
Để tìm lũy thừa trong Java, chúng ta cần sử dụng tới phương thức Math.pow(). Và chúng ta tạo phương thức kiểm tra số chính phương trong Java với cách này như sau:
| private static int find_square_number(int n){ //flag = 1 => số chính phương //flag = 0 => không phải số chính phương int flag = 0; //Tìm số bất kỳ nhỏ hơn hoặc bằng n mà bình phương bằng n int i = 0; while(i <= n){ if( Math.pow( i, 2) == n ) { flag = 1; break; /*Chỉ cần tìm thấy 1 số là đủ và thoát vòng lặp*/ } i++; } return flag;} |
Chúng ta có thể gọi phương thức này và sử dụng trong chương trình nhập n kiểm tra n có phải số chính phương không trong Java như sau:
| import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Nhap so nguyen= "); int n = scanner.nextInt(); int check = find_square_number(n); if( check == 1 ) System.out.println(n + " la so chinh phuong" ) ; else System.out.println(n+ " khong phai la so chinh phuong" ) ; } private static int find_square_number(int n){ //flag = 1 => số chính phương //flag = 0 => không phải số chính phương int flag = 0; //Tìm số bất kỳ nhỏ hơn hoặc bằng n mà bình phương bằng n int i = 0; while(i <= n){ if( Math.pow( i, 2) == n ) { flag = 1; break; /*Chỉ cần tìm thấy 1 số là đủ và thoát vòng lặp*/ } i++; } return flag; }} |
Lưu ý là số nhập từ bàn phím phải là một số tự nhiên.
Màn hình nhập liệu và kết quả kiểm tra số chính phương trong Java sẽ như sau:
| >> nhap mot so tu nhien: 44 la so chinh phuong>> nhap mot so tu nhien: 55 khong phai la so chinh phuong>> nhap mot so tu nhien: 1616 la so chinh phuong>> nhap mot so tu nhien: 2525 la so chinh phuong |
Kiểm tra số chính phương trong Java bằng căn bậc 2
Cách thứ 2 để kiểm tra số chính phương trong Java là sử dụng tính chất căn bậc 2 của một số chính phương chính là một số tự nhiên.
Điều đó có nghĩa, với một số bất kỳ, nếu căn bậc 2 của nó là một số tự nhiên, thì số đó chính là số chính phương.
Để tìm căn bậc 2 trong Java, chúng ta cần sử dụng tới phương thức Math.sqrt(). Để kiểm tra kết quả căn bậc 2 có phải là số tự nhiên không, chúng ta sẽ sử dụng phương thức tự tạo mà Kiyoshi đã giới thiệu trong bài sau:
- Xem thêm: Kiểm tra số nguyên trong Java
Và chúng ta tạo phương thức kiểm tra số chính phương trong Java với cách này như sau:
| /*Hàm kiểm tra một số có phải là số nguyên hay không*/private static int check_real_integer_number(double n){ //flag = 1 => số nguyên //flag = 0 => số thực int flag = 1; if (Math.ceil(n) != Math.floor(n)) flag = 0; return flag;}/*Hàm kiểm tra một số có phải là số chính phương hay không*/private static int find_square_number(int n){ //flag = 1 => số chính phương //flag = 0 => không phải số chính phương int flag = 0; //Tìm số bất kỳ nhỏ hơn n mà bình phương bằng n if (check_real_integer_number (Math.sqrt(n))== 1) flag = 1; return flag;} |
Chúng ta có thể gọi phương thức này và sử dụng trong chương trình nhập n kiểm tra n có phải số chính phương không trong Java như sau:
| import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Nhap so nguyen= "); int n = scanner.nextInt(); int check = find_square_number(n); if( check == 1 ) System.out.println(n + " la so chinh phuong" ) ; else System.out.println(n+ " khong phai la so chinh phuong" ) ; } /*Hàm kiểm tra một số có phải là số nguyên hay không*/ private static int check_real_integer_number(double n){ //flag = 1 => số nguyên //flag = 0 => số thực int flag = 1; if (Math.ceil(n) != Math.floor(n)) flag = 0; return flag; } /*Hàm kiểm tra một số có phải là số chính phương hay không*/ private static int find_square_number(int n){ //flag = 1 => số chính phương //flag = 0 => không phải số chính phương int flag = 0; //Tìm số bất kỳ nhỏ hơn n mà bình phương bằng n if (check_real_integer_number (Math.sqrt(n))== 1) flag = 1; return flag; } } |
Lưu ý là số nhập từ bàn phím phải là một số tự nhiên.
Màn hình nhập liệu và kết quả kiểm tra số chính phương trong Java sẽ như sau:
| >> nhap mot so tu nhien: 44 la so chinh phuong>> nhap mot so tu nhien: 55 khong phai la so chinh phuong>> nhap mot so tu nhien: 1616 la so chinh phuong>> nhap mot so tu nhien: 2525 la so chinh phuong |
Liệt kê tất cả các số chính phương nhỏ hơn n
Sử dụng một trong 2 phương pháp ở trên, chúng ta có thể liệt kê tất cả các số chính phương nhỏ hơn n bằng Java.
Và dưới đây là ví dụ về chương trình liệt kê tất cả các số chính phương nhỏ hơn n trong Java:
| import java.util.Scanner;public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Nhap so nguyen= "); int n = scanner.nextInt(); int i = 0, check; while ( i < n){ check = find_square_number(i); if( check == 1 ) System.out.print (i +" "); ++i; } } private static int find_square_number(int n){ //flag = 1 => số chính phương //flag = 0 => không phải số chính phương int flag = 0; //Tìm số bất kỳ nhỏ hơn hoặc bằng n mà bình phương bằng n int i = 0; while(i <= n){ if( Math.pow( i, 2) == n ) { flag = 1; break; /*Chỉ cần tìm thấy 1 số là đủ và thoát vòng lặp*/ } i++; } return flag; }} |
Kết quả:
| >> nhap mot so n: 100 1 4 9>> nhap mot so n: 300 1 4 9 16 25 |
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn cách kiểm tra số chính phương trong Java cũng như cách liệt kê tất cả các số chính phương nhỏ hơn n bằng Java rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về Java trong các bài học tiếp theo.
URL Link
https://laptrinhcanban.com/java/java-co-ban-cho-nguoi-moi-bat-dau/so-trong-java/kiem-tra-so-chinh-phuong-trong-java/
Từ khóa » Số Chính Phương Java
-
Kiểm Tra Số Chính Phương Trong Java - Freetuts
-
Số Chính Phương – Tổng Hợp Bài Tập Và Lời Giải | Lập Trình Java
-
Kiểm Tra Số Chính Phương Trong Java - Bài Tập Java Có Lời Giải Cơ ...
-
Kiểm Tra Số Nguyên Dương Là Số Chính Phương? | VnCoding
-
Kiểm Tra Số Chính Phương Trong Java - Freetuts
-
Bài Tập : Số Chính Phương - Lập Trình Java Căn Bản - YouTube
-
Bài Tập Java - Bài 1.14: Số Chính Phương - YouTube
-
Số Chính Phương Là Gì? - Định Nghĩa, Tính Chất Và Bài Tập áp Dụng
-
Số Chính Phương Là Gì? Đặc điểm Và Cách Nhận Biết Số Chính Phương
-
Số Chính Phương Là Gì? Tính Chất Của Số Chính Phương
-
Kiểm Tra Một Số Có Phải Số Chính Phương Trong C | Lập Trình Từ Đầu
-
Bài 2: Bài Tập Java Toán, Số Học - Tổng Hợp Bài Tập Java Có Lời Giải
-
Tìm Số Chính Phương Trong Java Netbeans
-
Https:///2018/05/bai-tap-java-xay...
-
Viết Chương Trình In Ra Các Phần Tử Là Số Chính Phương ở Vị Trí Lẻ ...
-
Kiểm Tra Số Chính Phương Trong C/C++ - Lập Trình Không Khó
-
CTDL Và Giải Thuật - In Các Số Chính Phương
-
Kiểm Tra Số Nguyên Tố Sử Dụng C/C++ Và Java - Cổng Vàng Việt Nam