👦
ETAN Student
Danh mục học tập
Quay lại Danh sách Bài toán
Thuật toán Trung bình GDPT 2018

Kiểm tra Số Nguyên Tố trong Scratch

Công thức trọng tâm: Lặp từ 1 đến N đếm số ước

Yêu cầu đề bài: Nhập N. Số nguyên tố là số lớn hơn 1 và chỉ có 2 ước số là 1 và chính nó. Dùng vòng lặp Scratch kiểm tra số ước của N.

Ví dụ mẫu (Input / Output):
Input: N = 7 -> Output: '7 la so nguyen to!'

Trình chạy thử Scratch Player

💡 Mẹo: Nếu màn hình hiển thị "Oops! Something went wrong" (do bài toán chưa có ID công khai), hãy bấm nút [ 🛠️ Scratch Editor ] phía trên để tự tạo và thử nghiệm khối lệnh Scratch trực tiếp!

Trợ lý AI Scratch Math

Phân tích thuật toán & Soi mã nguồn Scratch .sb3

1. Bản chất Toán học

Số nguyên tố là số tự nhiên lớn hơn 1 và chỉ có đúng hai ước dương: 1 và chính nó. Để kiểm tra một số N có phải là số nguyên tố hay không, ta đếm số lượng ước của N trong khoảng từ 1 tới N. Nếu số lượng ước bằng 2 → N là số nguyên tố; nếu lớn hơn 2 → N không phải số nguyên tố. Công thức đếm ước:
đếm = Σ_{i=1}^{N} [N mod i = 0]
(Trong đó dấu ngoặc vuông là hàm kiểm tra, trả về 1 nếu điều kiện đúng, 0 nếu sai). Khi đếm = 2 thì N là nguyên tố.

2. Tư duy Thuật toán Scratch
  • Bước 1: Nhận giá trị N từ người dùng bằng khối ask [Nhập N:] and wait.
  • Bước 2: Tạo biến đếm và đặt giá trị ban đầu = 0.
  • Bước 3: Dùng vòng lặp repeat (N) (hoặc repeat until với biến đếm) để lặp i từ 1 tới N.
  • Bước 4: Trong mỗi vòng, kiểm tra (N mod i) = 0 bằng khối if < >. Nếu đúng, tăng biến đếm lên 1.
  • Bước 5: Sau khi vòng lặp kết thúc, dùng if <đếm = 2> để quyết định thông báo “N là số nguyên tố” hoặc “N không phải số nguyên tố”.
  • Bước 6 (tối ưu, không bắt buộc): Giảm phạm vi lặp tới √N để tăng tốc, nhưng với yêu cầu “lặp từ 1 đến N” ta giữ nguyên cách trên.
3. Nhóm khối Scratch cần dùng

Events 🟡: when green flag clicked, ask [ ] and wait để nhận N.
Control 🟠: repeat ( ) (hoặc repeat until), if < > then, else để kiểm tra điều kiện và điều hướng luồng.
Sensing 🩵: ( ) mod ( ) để tính phần dư, answer để lấy giá trị người dùng nhập.
Variables 🟧: biến N (lưu giá trị nhập), i (đếm vòng lặp), đếm (đếm số ước).
Operators 🟢: =, <, >, and nếu cần kết hợp nhiều điều kiện.
Các khối trên kết hợp lại sẽ tạo nên chương trình kiểm tra số nguyên tố hoàn chỉnh trong Scratch.

Các nhóm khối Scratch gợi ý:
khi bấm vào lá cờ xanh
hỏi [Nhập số liệu đề bài] và chờ
đặt [Ket_Qua v] thành (0)
lặp lại (trả lời) lần
((Ket_Qua) + (câu trả lời))
💡 Mẹo từ AI: Đảm bảo khởi tạo giá trị biến số bằng 0 trước khi bước vào vòng lặp!

1. Phân Tích Đề Bài & Tư Duy Máy Tính (Computational Thinking)

Bài toán "Kiểm tra Số Nguyên Tố trong Scratch" là một thách thức về Thuật toán & Xử lý logic, yêu cầu học sinh phải thiết kế trình tự xử lý dữ liệu đúng đắn trong Scratch 3.0. Không chỉ đơn thuần là bài toán tính nhẩm, đây là bài rèn luyện tư duy lập trình — khả năng phân rã vấn đề phức tạp thành chuỗi bước máy tính có thể thực thi. Quá trình giải bao gồm 4 trụ cột Tư duy máy tính (Computational Thinking):

1. Phân rã (Decomposition)

Chia bài toán sử dụng vòng lặp thành: (a) Khởi tạo biến ban đầu và nhập dữ liệu, (b) Thiết kế vòng lặp xử lý từng phần tử / bước tính, (c) Thoát vòng lặp và xuất kết quả cuối cùng.

2. Nhận dạng mẫu (Pattern)

Xác định quy luật toán học cốt lõi trong phân môn Thuật toán ở mức Trung bình. Nhận diện cấu trúc lặp lại, điều kiện kiểm tra và mối quan hệ giữa các đại lượng trong đề bài.

3. Trừu tượng hóa (Abstraction)

Đại số hóa các đại lượng trong đề bài "Kiểm tra Số Nguyên Tố trong Scratch" thành các Biến số (Variables) trong bộ nhớ chương trình. Xác định rõ biến nào là Input (do người dùng nhập), biến nào là Output (kết quả cần tìm), biến nào là trung gian (dùng trong quá trình tính).

4. Thiết kế Thuật toán

Thiết kế chuỗi khối lệnh sử dụng Vòng lặp (Repeat N lần) làm trục chính, kết hợp biến đếm tăng dần sau mỗi lần lặp. Kiểm tra thuật toán đạt kết quả chính xác sau đúng N bước lặp.

2. Phương Pháp Toán Học & Cơ Sở Lý Thuyết

Thuật toán của bài toán "Kiểm tra Số Nguyên Tố trong Scratch" đòi hỏi thiết kế quy trình xử lý dữ liệu có hệ thống. Cốt lõi nằm ở việc chuyển đổi bài toán suy luận sang chuỗi phép toán máy tính có thể thực thi tuần tự:

Biểu thức / Công thức toán học then chốt:
Lặp từ 1 đến N đếm số ước

Các bước suy luận từng bước:

  • Bước 1 (Xác định phạm vi duyệt): Xác định giá trị bắt đầu, giá trị kết thúc và bước nhảy của vòng lặp. Ví dụ: duyệt từ 1 đến N, hoặc duyệt các phần tử trong danh sách.
  • Bước 2 (Thiết lập biểu thức trong vòng lặp): Trong mỗi lần lặp, áp dụng công thức Lặp từ 1 đến N đếm số ước để tính toán và cập nhật biến tích lũy (tổng, đếm, max/min).
  • Bước 3 (Kiểm tra điều kiện dừng): Đảm bảo vòng lặp kết thúc đúng lúc — không thiếu (bỏ sót phần tử) và không thừa (lặp vô hạn hoặc tràn giá trị).

3. Kịch Bản & Thiết Kế Khối Lệnh Scratch 3.0 (Visual Blocks)

Dưới đây là kịch bản mô phỏng các khối lệnh Scratch cần lắp ghép để giải bài "Kiểm tra Số Nguyên Tố trong Scratch":

Kịch bản khối lệnh — Kiểm tra Số Nguyên Tố trong Scratch:
khi bấm vào [lá cờ xanh]
đặt [Ket_Qua v] thành (0)
đặt [Bien_Dem v] thành (1)
nói [Cùng giải bài "Kiểm tra Số Nguyên Tố trong Scratch" nhé!] trong (2) giây
hỏi [Nhập giá trị N:] và đợi
đặt [N v] thành (câu trả lời)
lặp lại (N) lần {
đổi [Ket_Qua v] thêm ( Lặp từ 1 đến N đếm số ước )
đổi [Bien_Dem v] thêm (1)
}
nói (kết hợp [Kết quả: ] với (Ket_Qua)) trong (5) giây
dừng lại [kịch bản này v]
Nhóm khối lệnh chính sử dụng trong bài này: Sự kiện (Events), Biến số (Variables), Cảm biến (Sensing), Hiển thị (Looks), Điều khiển — Vòng lặp (Control: Repeat).

4. Bảng Thử Nghiệm & Kiểm Thử Thuật Toán (Test Cases)

Để đảm bảo chương trình Scratch giải bài "Kiểm tra Số Nguyên Tố trong Scratch" hoạt động chính xác, hãy kiểm thử với các bộ dữ liệu sau:

Trường HợpDữ Liệu Đầu Vào (Input)Kết Quả Kỳ Vọng (Output)Mục đích
TC 1Input: N = 7 -> Output: '7 la so nguyen to!'Giá trị tính đúng theo công thứcChuẩn đề bài
TC 2N = 1 (lặp 1 lần — trường hợp biên nhỏ nhất)Kết quả = giá trị khởi tạo + 1 bướcĐiều kiện biên
TC 3N = 100 (số lần lặp lớn)Chạy nhanh, không bị treo (< 2 giây)Hiệu năng
TC 4N = 0 (không lặp)Kết quả = giá trị khởi tạo ban đầuBiên / Đặc biệt

5. Các Lỗi Phổ Biến & Hướng Dẫn Gỡ Lỗi (Debugging)

Lỗi 1: Quên khởi tạo lại biến

Trong bài "Kiểm tra Số Nguyên Tố trong Scratch" sử dụng vòng lặp, biến Ket_Qua và Bien_Dem PHẢI được đặt lại về 0 ngay sau khối khi bấm cờ xanh. Nếu quên, lần chạy thứ 2 sẽ cộng dồn sai.

Lỗi 2: Sai số lần lặp (Off-by-one)

Đếm từ 1 đến N cần lặp đúng N lần, nhưng đếm từ 0 đến N−1 cũng là N lần. Sai 1 đơn vị (off-by-one) là lỗi rất phổ biến — hãy kiểm tra bằng Test Case với N nhỏ để phát hiện sớm.

Lỗi 3: Mất dữ liệu Input khi hỏi nhiều lần

Khối Hỏi và đợi lưu kết quả vào biến hệ thống câu trả lời. Nếu bài "Kiểm tra Số Nguyên Tố trong Scratch" cần nhập nhiều giá trị, phải lưu câu trả lời vào biến riêng (So_1, So_2...) ngay sau mỗi lần hỏi, trước khi hỏi câu tiếp theo.

6. Câu Hỏi Thường Gặp Về Bài Toán "Kiểm tra Số Nguyên Tố trong Scratch"

Bài toán ở mức Trung bình, phù hợp với học sinh Lớp 3-5 đã biết kéo thả khối lệnh cơ bản trong Scratch và nắm được khái niệm biến số.

Hãy dùng khối Nói (giá trị biến) trong 2 giây để hiển thị giá trị từng biến trung gian sau mỗi bước tính. So sánh giá trị hiển thị với kết quả nhẩm — bước nào sai sẽ lộ ra ngay. Đây là kỹ thuật Debug bằng Print cơ bản.

Em chỉ cần lưu file dự án từ phần mềm Scratch về máy tính dưới dạng file đuôi .sb3, sau đó chọn thẻ [ 🔍 AI Debug .sb3 ] ở cột bên phải và bấm tải file lên. Trợ lý AI của ETAN sẽ tự động phân tích từng khối lệnh và đưa ra nhận xét chi tiết!
🍪 ETAN sử dụng cookie để nâng cao trải nghiệm tra cứu học liệu, duy trì phiên làm việc và hiển thị nội dung phù hợp. Tìm hiểu thêm