Giải quyết các bài toán lập trình cơ bản với vòng lặp trong JavaScript
Bài viết này tổng hợp các ví dụ lập trình kinh điển trong JavaScript như kiểm tra số nguyên tố, đảo ngược số và tính tổng chữ số. Những thuật toán này là nền tảng quan trọng giúp người học nắm vững cách sử dụng vòng lặp và các phép toán cơ bản.

Vòng lặp (loop) là một trong những khái niệm cốt lõi trong lập trình, cho phép thực thi một khối lệnh nhiều lần mà không cần viết lại code. Trong bài viết này, chúng ta sẽ cùng khám phá cách áp dụng vòng lặp trong JavaScript để giải quyết các bài toán toán học và logic phổ biến.
1. Kiểm tra số nguyên tố (Prime Number)
Số nguyên tố là số lớn hơn 1 và chỉ chia hết cho 1 và chính nó. Chúng ta có thể sử dụng vòng lặp for để kiểm tra tính chất này.
i) Kiểm tra một số có phải là số nguyên tố hay không
Logic ở đây là duyệt từ 2 đến số cần kiểm tra trừ 1. Nếu tìm thấy bất kỳ số nào chia hết, ta kết luận đó không phải số nguyên tố.
let num = 7;
let isPrime = true;
for (let i = 2; i < num; i++) {
if (num % i === 0) {
isPrime = false;
break; // Thoát vòng lặp nếu tìm thấy ước số
}
}
if (num > 1 && isPrime) {
console.log("Prime"); // Là số nguyên tố
} else {
console.log("Not Prime"); // Không phải số nguyên tố
}
Kết quả:
Prime
ii) In ra tất cả các số nguyên tố từ 2 đến 50
Để tìm danh sách các số nguyên tố trong một khoảng, ta lồng thêm một vòng lặp bên ngoài để duyệt qua từng số.
for (let num = 2; num <= 50; num++) {
let isPrime = true;
for (let i = 2; i < num; i++) {
if (num % i === 0) {
isPrime = false;
break;
}
}
if (isPrime) {
console.log(num);
}
}
Kết quả:
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
2. Đảo ngược một số (Reverse Number)
Để đảo ngược các chữ số của một số nguyên, ta sử dụng vòng lặp while kết hợp với phép chia lấy dư (%) và chia nguyên (Math.floor).
let num = 1234;
let reverse = 0;
while(num > 0) {
let digit = num % 10; // Lấy chữ số cuối cùng
reverse = reverse * 10 + digit; // Gắn chữ số đó vào kết quả
num = Math.floor(num / 10); // Bỏ chữ số cuối cùng
}
document.write("Reverse: " + reverse);
Kết quả:
Reverse: 4321
3. Đếm số lượng chữ số (Count of Digits)
Tương tự như thuật toán đảo ngược, thay vì xây dựng lại số mới, ta chỉ cần tăng biến đếm lên mỗi lần lấy ra một chữ số.
let num = 1234;
let count = 0;
while(num > 0) {
let digit = num % 10;
num = Math.floor(num / 10);
count++;
}
document.write("Count of digits: " + count);
Kết quả:
Count of digits: 4
4. Tổng các chữ số (Sum of Digits)
Bài toán này yêu cầu cộng tất cả các chữ số lại với nhau. Cấu trúc vòng lặp vẫn giữ nguyên, chỉ thay đổi cách xử lý biến sum.
let num = 123;
let sum = 0;
while (num > 0) {
let digit = num % 10;
sum += digit; // Cộng dồn chữ số vào tổng
num = Math.floor(num / 10);
}
console.log("Sum:", sum);
Kết quả:
6
5. Số đối xứng (Palindrome)
Số đối xứng là số đọc từ trái sang phải hay từ phải sang trái đều cho kết quả giống nhau (ví dụ: 121, 1331). Ta sẽ đảo ngược số và so sánh với bản gốc.
let num = 121;
let temp = num; // Lưu lại giá trị gốc để so sánh sau này
let reverse = 0;
while (num > 0) {
let digit = num % 10;
reverse = reverse * 10 + digit;
num = Math.floor(num / 10);
}
if (temp === reverse) {
console.log("Palindrome");
} else {
console.log("Not Palindrome");
}
Kết quả:
Palindrome
6. Hoán đổi giá trị của hai số (Swapping)
Hoán đổi giá trị là một bài toán cơ bản giúp hiểu rõ về cách gán giá trị biến.
Cách 1: Sử dụng biến tạm (third variable)
Đây là cách phổ biến và an toàn nhất.
let a = 5;
let b = 10;
let temp = a; // Lưu giá trị của a
a = b; // Gán giá trị của b cho a
b = temp; // Gán giá trị cũ của a (đang ở temp) cho b
console.log("a =", a);
console.log("b =", b);
Kết quả:
a = 10
b = 5
Cách 2: Không sử dụng biến thứ ba
Cách này sử dụng phép cộng và trừ để thực hiện hoán đổi, tiết kiệm bộ nhớ nhưng cần cẩn thận với tràn số.
let a = 5;
let b = 10;
a = a + b; // a trở thành 15
b = a - b; // b trở thành 5 (15 - 10)
a = a - b; // a trở thành 10 (15 - 5)
console.log("a =", a);
console.log("b =", b);
Kết quả:
a = 10
b = 5
Trên đây là các ví dụ minh họa điển hình giúp bạn làm quen với tư duy thuật toán và thao tác với vòng lặp trong JavaScript.
Bài viết liên quan

Phần mềm
Anthropic ra mắt Claude Opus 4.7: Nâng cấp mạnh mẽ cho lập trình nhưng vẫn thua Mythos Preview
16 tháng 4, 2026

Công nghệ
Qwen3.6-35B-A3B: Quyền năng Lập trình Agentic, Nay Đã Mở Cửa Cho Tất Cả
16 tháng 4, 2026

Công nghệ
Spotify thắng kiện 322 triệu USD từ nhóm pirate Anna's Archive nhưng đối mặt với bài toán thu hồi
16 tháng 4, 2026
