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

Tìm số tự nhiên liên tiếp

Công thức trọng tâm: x + (x + 1) = 100a + 10b + c, trong đó a, b, c là chữ số và x là số tự nhiên

Yêu cầu đề bài: Vĩnh nghĩ ra 2 số tự nhiên liên tiếp, trong đó có một số chia hết cho 9. Tổng 2 số đó là một số có đặc điểm như sau: có 3 chữ số, chia hết cho 5, tổng chữ số hàng trăm và chữ số hàng đơn vị là một số chia hết cho 9, và tổng chữ số hàng trăm và chữ số hàng chục là một số chia hết cho 4.

Ví dụ mẫu (Input / Output):
Ví dụ: Input là các điều kiện về số tự nhiên liên tiếp, Output là hai số tự nhiên liên tiếp thỏa mãn các điều kiện

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

Gọi số tự nhiên đầu tiên là x, thì số liên tiếp tiếp theo là x+1. Theo đề bài:

  • Trong hai số này có một số chia hết cho 9 → x ≡ 0 (mod 9) hoặc x+1 ≡ 0 (mod 9).
  • Tổng hai số là một số có 3 chữ số: 2x+1 = 100a + 10b + c (a, b, c là các chữ số, a≠0).
  • Số này chia hết cho 5 → chữ số hàng đơn vị c phải là 0 hoặc 5.
  • Tổng chữ số hàng trăm và hàng đơn vị a + c chia hết cho 9.
  • Tổng chữ số hàng trăm và hàng chục a + b chia hết cho 4.
Từ các điều kiện trên ta có:
  1. Vì 2x+1 là số lẻ, nên c không thể là 0 → c = 5.
  2. Thay c = 5 vào a + c ≡ 0 (mod 9) → a ≡ 4 (mod 9). Vì a là chữ số (1‑9) nên a = 4.
  3. Điều kiện a + b ≡ 0 (mod 4) → 4 + b ≡ 0 (mod 4) → b có thể là 0,4,8. Tuy nhiên b phải là chữ số và 2x+1 = 100·4 + 10b + 5 = 405, 445, 485.
  4. Kiểm tra các giá trị:
    • 405 → 2x+1 = 405 → x = 202. 202 chia hết cho 9? 202 mod 9 = 4 → không.
    • 445 → x = 222. 222 mod 9 = 6 → không.
    • 485 → x = 242. 242 mod 9 = 8 → không.
  5. Vì không có giá trị nào thỏa điều kiện “một trong hai số chia hết cho 9”, ta xét lại giả thiết x+1 ≡ 0 (mod 9). Khi x+1 = 9k → x = 9k‑1. Thay vào 2x+1 = 18k‑1 và áp dụng các ràng buộc về ba chữ số, ta thu được 2x+1 = 495 (vì 495 là số lẻ, có 3 chữ số, chia hết cho 5, a=4, b=9, c=5, a+c=9 chia 9, a+b=13 chia 4? 13 mod 4 = 1 → không).
  6. Cuối cùng, giá trị duy nhất thỏa mọi điều kiện là 2x+1 = 585 → a=5, b=8, c=5. Kiểm tra:
    • 585 chia hết cho 5 → đúng.
    • a + c = 5 + 5 = 10, 10 chia 9? → không, nên 585 không thỏa.
  7. Do quá trình thử và loại trừ, nghiệm duy nhất thỏa mọi điều kiện là 2x+1 = 495 → x = 247. Kiểm tra:
    • 247 và 248: 248 chia hết cho 9? 248 mod 9 = 5 → không, nhưng 247 mod 9 = 4 → không.
Kết luận: Số tự nhiên liên tiếp thỏa đề bài là 494 và 495 (vì 494 + 495 = 989, không thỏa). Thực tế, nghiệm duy nhất thỏa mọi điều kiện là 247 và 248 (tổng = 495). Kiểm tra lại:
  • 248 chia hết cho 9? 248 ÷ 9 = 27 dư 5 → không, nhưng 247 chia hết cho 9? 247 ÷ 9 = 27 dư 4 → không.
Vì không có cặp nào thỏa hết, bài toán thực tế không có nghiệm trong tập số tự nhiên. (Nếu cho phép “một trong hai số chia hết cho 9” nghĩa là “có ít nhất một số chia hết cho 9”, thì cặp 8 và 9 thỏa: tổng = 17 (không phải 3 chữ số). Do vậy, không tồn tại nghiệm thỏa mọi ràng buộc đã nêu.)

2. Tư duy Thuật toán Scratch
  • Bước 1: Khởi tạo biến x (số đầu) và sum (tổng).
  • Bước 2: Dùng vòng lặp repeat until để tăng x từ 0 lên tới giá trị lớn hơn 500 (đảm bảo tổng có 3 chữ số).
  • Bước 3: Tính sum = x + (x + 1) bằng khối set sum to (x) + (x + 1).
  • Bước 4: Kiểm tra các điều kiện một cách tuần tự bằng khối if … then lồng nhau:
    • Điều kiện 1: sum mod 5 = 0 (chia hết cho 5).
    • Điều kiện 2: tách chữ số a, b, c từ sum (sử dụng floor và mod).
    • Điều kiện 3: (a + c) mod 9 = 0.
    • Điều kiện 4: (a + b) mod 4 = 0.
    • Điều kiện 5: (x mod 9 = 0) or ((x + 1) mod 9 = 0).
  • Bước 5: Khi tất cả các điều kiện đều đúng, dùng khối say hoặc show để hiển thị giá trị x và x+1.
  • Bước 6: Dừng chương trình (hoặc đặt stop all) để không lặp vô hạn.
3. Nhóm khối Scratch cần dùng

Events 🟡: when green flag clicked – khởi động thuật toán.
Control 🟠: repeat until, if … then, else, stop all – điều khiển vòng lặp và các nhánh kiểm tra.
Sensing 🩵: không cần, trừ khi dùng ask and wait để nhập giá trị ban đầu.
Variables 🟧: tạo biến x, sum, a, b, c để lưu trữ số và các chữ số.
Operators 🟢: +, -, *, /, mod, floor, and, or, =, ≠ – thực hiện các phép tính và so sánh.
Looks 👓: say hoặc show variable – hiển thị kết quả cuối cùng.
Pen ✏️ (tùy chọn): vẽ bảng kiểm tra nếu muốn minh họa quá trình lặp.

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 "Tìm số tự nhiên liên tiếp" thuộc phân môn Số học & Tính toán — nền tảng cốt lõi của toán tiểu học. Khi chuyển đổi bài toán trên giấy sang chương trình Scratch 3.0, học sinh không chỉ ôn luyện kỹ năng tính toán mà còn phát triển năng lực Tư duy máy tính (Computational Thinking) theo CT GDPT 2018. Quá trình giải bao gồm 4 trụ cột:

1. Phân rã (Decomposition)

Chia bài toán có rẽ nhánh thành: (a) Thu thập dữ liệu đầu vào từ người dùng, (b) Kiểm tra điều kiện toán học (chia hết, so sánh, kiểm tra tính chất), (c) Hiển thị kết quả tương ứng với từng nhánh điều kiện.

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 Số học ở 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 "Tìm số tự nhiên liên tiếp" 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ế thuật toán rẽ nhánh Nếu... thì... / Nếu không thì... để xử lý các trường hợp khác nhau của bài toán. Đảm bảo mọi nhánh đều cho kết quả đúng.

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

Cốt lõi toán học của bài toán "Tìm số tự nhiên liên tiếp" dựa trên các phép tính số học và biểu thức đại số cơ bản ở cấp tiểu học:

Biểu thức / Công thức toán học then chốt:
x + (x + 1) = 100a + 10b + c, trong đó a, b, c là chữ số và x là số tự nhiên

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

  • Bước 1 (Xác định đại lượng cần kiểm tra): Xác định rõ giá trị hoặc biểu thức nào cần đưa vào điều kiện Nếu...thì — ví dụ: phép chia dư, phép so sánh lớn/nhỏ, kiểm tra tính chất số.
  • Bước 2 (Thiết lập biểu thức điều kiện): Chuyển đổi yêu cầu đề bài thành biểu thức logic: x + (x + 1) = 100a + 10b + c, trong đó a, b, c là chữ số và x là số tự nhiên. Xác định rõ nhánh Đúng và nhánh Sai sẽ thực hiện phép toán gì.
  • Bước 3 (Kiểm tra tất cả các nhánh): Đảm bảo mỗi nhánh điều kiện đều cho kết quả hợp lệ (số tự nhiên, không âm, nằm trong phạm vi đề bài).

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 "Tìm số tự nhiên liên tiếp":

Kịch bản khối lệnh — Tìm số tự nhiên liên tiếp:
khi bấm vào [lá cờ xanh]
đặt [Ket_Qua v] thành (0)
nói [Bài toán: Tìm số tự nhiên liên tiếp] trong (2) giây
hỏi [Nhập số cần kiểm tra:] và đợi
đặt [So_Nhap v] thành (câu trả lời)
nếu < x + (x + 1) = 100a + 10b + c, trong đó a, b, c là chữ số và x là số tự nhiên > thì {
nói [Thỏa mãn điều kiện!] trong (3) giây
} nếu không {
nói [Không thỏa mãn điều kiện!] trong (3) 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 — Rẽ nhánh (Control: If-Else).

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 "Tìm số tự nhiên liên tiếp" 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 1Ví dụ: Input là các điều kiện về số tự nhiên liên tiếp, Output là hai số tự nhiên liên tiếp thỏa mãn các điều kiệnGiá trị tính đúng theo công thứcChuẩn đề bài
TC 2Giá trị thỏa mãn điều kiện (nhánh Đúng)Kết quả nhánh Đúng hiển thị chính xácNhánh True
TC 3Giá trị KHÔNG thỏa mãn điều kiện (nhánh Sai)Kết quả nhánh Sai hiển thị chính xácNhánh False
TC 4Giá trị biên (vừa đúng hoặc vừa sai ranh giới)Kiểm tra toán tử so sánh: ≤ hay < ?Ranh giới

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

Khi giải bài "Tìm số tự nhiên liên tiếp", biến Ket_Qua phải được đặt về 0 ngay đầu chương trình. Nếu quên, lần chạy thứ 2 trở đi sẽ cho kết quả sai do giá trị cũ còn lưu trong bộ nhớ.

Lỗi 2: Nhầm toán tử so sánh

Scratch chỉ có 3 toán tử so sánh: <, =, >. Để kiểm tra ≤ hoặc ≥, cần kết hợp bằng khối HOẶC: < (a < b) HOẶC (a = b) >. Bỏ sót sẽ sai ở giá trị biên.

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 "Tìm số tự nhiên liên tiếp" 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 "Tìm số tự nhiên liên tiếp"

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