Kiểm tra số chính phương trong JavaScript | Laptrinhcanban.com

Kiểm tra số chính phương trong JavaScript

Hướng dẫn cách kiểm tra số chính phương trong JavaScript. Bạn sẽ học được cách tạo hàm kiểm tra số chính phương trong JavaScript cũng như cách liệt kê tất cả các số chính phương nhỏ hơn n bằng JavaScript 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 JavaScript như sau:

  • Kiểm tra số chính phương trong JavaScript bằng lũy thừa
  • Kiểm tra số chính phương trong JavaScript bằng căn bậc 2

Số chính phương trong JavaScript

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 JavaScript cũng giống như trên. Chúng ta coi một số là số chính phương trong JavaScript 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 JavaScript.

Số chính phương trong JavaScript

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 JavaScript.

Kiểm tra số chính phương trong JavaScript bằng lũy thừa

Cách đầu tiên để kiểm tra số chính phương trong JavaScript 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 JavaScript, chúng ta cần sử dụng tới thuộc tính Math.pow() trong Math Object. Và chúng ta tạo hàm kiểm tra số chính phương trong JavaScript với cách này như sau:

function find_square_number(n){
//flag = 1 => số chính phương
//flag = 0 => không phải số chính phương

let flag = 0;

//Tìm số bất kỳ nhỏ hơn hoặc bằng n mà bình phương bằng n
let i = 0;
while(i <= n){
if( Math.pow( i, 2) == n ) {
flag = 1;
break; /*Chỉ cần tìm thấy 1 ước số là đủ và thoát vòng lặp*/
}
i++;
}

return flag;
}

Chúng ta có thể gọi hàm 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 JavaScript như sau:

function find_square_number(n){
//flag = 1 => số chính phương
//flag = 0 => không phải số chính phương

let flag = 0;

//Tìm số bất kỳ nhỏ hơn hoặc bằng n mà bình phương bằng n
let i = 0;
while(i <= n){
if( Math.pow( i, 2) == n ) {
flag = 1;
break; /*Chỉ cần tìm thấy 1 ước số là đủ và thoát vòng lặp*/
}
i++;
}

return flag;
}

let n= prompt(" nhap mot so tu nhien: ");


let check = find_square_number(n);

if( check == 1 ) console.log(n + " la chinh phuong");
else console.log(n + " khong phai la so chinh phuong");

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 JavaScript sẽ như sau:

nhap mot so tu nhien: 4
4 la so chinh phuong

nhap mot so tu nhien: 5
5 khong phai la so chinh phuong

nhap mot so tu nhien: 16
16 la so chinh phuong

nhap mot so tu nhien: 25
25 la so chinh phuong

Kiểm tra số chính phương trong JavaScript bằng căn bậc 2

Cách thứ 2 để kiểm tra số chính phương trong JavaScript 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 JavaScript, chúng ta cần sử dụng tới thuộc tính Math.sqrt() trong Math Object. Để 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 hàm tự tạo mà Kiyoshi đã giới thiệu trong bài sau:

Và chúng ta tạo hàm kiểm tra số chính phương trong JavaScript 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*/
function check_real_leteger_number( n){
//flag = 1 => số nguyên
//flag = 0 => số thực

let 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*/
function find_square_number(n){
//flag = 1 => số chính phương
//flag = 0 => không phải số chính phương

let flag = 0;
//Kiểm tra căn bậc 2 của số đó có phải là số nguyên hay không
if (check_real_leteger_number (Math.sqrt(n))) flag = 1;
return flag;
}

Chúng ta có thể gọi hàm 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 JavaScript như sau:

function check_real_leteger_number( n){
//flag = 1 => số nguyên
//flag = 0 => số thực

let flag = 1;
if (Math.ceil(n) != Math.floor(n)) flag = 0;
return flag;
}

function find_square_number(n){
//flag = 1 => số chính phương
//flag = 0 => không phải số chính phương

let flag = 0;
//Kiểm tra căn bậc 2 của số đó có phải là số nguyên hay không
if (check_real_leteger_number (Math.sqrt(n))) flag = 1;
return flag;
}

let n= prompt(" nhap mot so tu nhien: ");

let check = find_square_number(n);

if( check == 1 ) console.log(n + " la chinh phuong");
else console.log(n + " khong phai la so chinh phuong");

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 JavaScript sẽ như sau:

nhap mot so tu nhien: 4
4 la so chinh phuong

nhap mot so tu nhien: 5
5 khong phai la so chinh phuong

nhap mot so tu nhien: 16
16 la so chinh phuong

nhap mot so tu nhien: 25
25 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 JavaScript.

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 JavaScript:

function find_square_number(n){
//flag = 1 => số chính phương
//flag = 0 => không phải số chính phương

let flag = 0;

//Tìm số bất kỳ nhỏ hơn n mà bình phương bằng n
let i = 0;
while(i <= n){
if( Math.pow( i, 2) == n ) {
flag = 1;
break; /*Chỉ cần tìm thấy 1 ước số là đủ và thoát vòng lặp*/
}
i++;
}

return flag;
}

let n= prompt(" nhap mot so n: ");

let i = 0, check=0, result ="";
while ( i < n){
check = find_square_number(i);
if( check == 1 ) result += i + " ";
++i;
}
console.log(result);

Kết quả:

nhap mot so n: 10
0 1 4 9

nhap mot so n: 30
0 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 JavaScript cũng như cách liệt kê tất cả các số chính phương nhỏ hơn n bằng JavaScript 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ề JavaScript trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.