Bài tập: Nhập n (n > 0), xuất các số nguyên tố nhỏ hơn hoặc bằng n
Hướng dẫn thực hiện
1. Mục tiêu bài thực hành
- Khởi động và làm quen với Google Antigravity.
- Tạo dự án để lưu chương trình Java.
- Biết viết prompt rõ ràng và chia nhỏ yêu cầu.
- Hiểu thuật toán kiểm tra số nguyên tố.
- Biết dùng Scanner, hàm static và vòng lặp trong Java.
- Biết yêu cầu AI kiểm thử và sửa lỗi.
2. Khởi động Google Antigravity
Truy cập trang tải Google Antigravity, chọn đúng hệ điều hành, cài đặt và mở phần mềm. Đăng nhập bằng tài khoản Google. Ở lần sử dụng đầu tiên, hoàn tất các lựa chọn giao diện và quyền sử dụng dữ liệu.
.png)
Hình 1. Chọn phiên bản phù hợp với hệ điều hành.
.png)
Hình 2. Giao diện khởi động của Google Antigravity.
3. Tạo dự án Java
Tạo một thư mục, ví dụ D:\BaiTap_CoSoLapTrinh\SoNguyenTo_Java. Trong Antigravity, chọn Select Project → New Project và chọn thư mục vừa tạo. Khi AI sinh mã nguồn, yêu cầu lưu tệp với tên Main.java vì lớp public trong chương trình có tên Main.
.png)
Hình 3. Tạo dự án từ thư mục lưu bài tập Java.
.png)
Hình 4. Ô nhập prompt và khu vực quản lý dự án.
4. Prompt phân tích bài toán
Sinh viên không nên yêu cầu “viết code ngay”. Trước tiên, hãy yêu cầu AI phân tích đầu vào, đầu ra, khái niệm số nguyên tố và thuật toán. Việc này giúp sinh viên hiểu logic trước khi xem mã nguồn.
.png)
Hình 5. Prompt phân tích bài toán theo ngôn ngữ Java.
5. Thuật toán cần hiểu
Số nguyên tố là số nguyên lớn hơn 1 và chỉ có hai ước dương là 1 và chính nó. Với mỗi số x, nếu x < 2 thì không phải số nguyên tố. Sau đó kiểm tra các ước i từ 2 đến căn bậc hai của x. Nếu x chia hết cho i thì x không phải số nguyên tố; nếu không có ước nào thì x là số nguyên tố.
1. Nhập n bằng Scanner.
2. Nếu n ≤ 0, yêu cầu người dùng nhập lại.
3. Duyệt i từ 2 đến n.
4. Gọi hàm isPrime(i).
5. Nếu kết quả là true, in i ra màn hình.
6. Prompt yêu cầu viết chương trình Java
Sau khi hiểu thuật toán, sinh viên yêu cầu Antigravity tạo tệp Main.java. Prompt nên chỉ rõ tên lớp, cách nhập bằng Scanner, tên hàm kiểm tra và cách xử lý n không hợp lệ.
.png)
Hình 6. Prompt yêu cầu tạo chương trình Java hoàn chỉnh.
7. Mã nguồn Java tham khảo
Mã nguồn dưới đây là một kết quả hợp lý. Sinh viên cần đọc, giải thích lại từng phần và đối chiếu với thuật toán. Tệp phải được lưu đúng tên Main.java.
.png)
Hình 7. Chương trình Java tìm các số nguyên tố nhỏ hơn hoặc bằng n.
8. Biên dịch và chạy chương trình
Nếu máy đã cài JDK, mở Terminal tại thư mục dự án. Dùng lệnh javac Main.java để biên dịch. Nếu không có lỗi, dùng lệnh java Main để chạy. Antigravity cũng có thể hỗ trợ mở terminal và thực hiện các lệnh này trong dự án.
.png)
Hình 8. Biên dịch và chạy chương trình Java.
9. Prompt kiểm thử và sửa lỗi
Mã do AI tạo vẫn có thể sai. Sinh viên cần yêu cầu thử nhiều dữ liệu, đặc biệt là trường hợp biên như n = 1 và n = 2.
.png)
Hình 9. Prompt kiểm thử chương trình Java.
10. Kết quả mong đợi
- n = 1: không có số nguyên tố.
- n = 2: 2
- n = 10: 2 3 5 7
- n = 30: 2 3 5 7 11 13 17 19 23 29
11. Cách đặt câu hỏi tiếp theo
6. Hãy giải thích từng dòng trong hàm isPrime(int x).
7. Vì sao điều kiện i <= x / i tương đương với kiểm tra đến căn bậc hai và tránh tràn số?
8. Hãy chuyển chương trình thành hai lớp: Main và PrimeUtils.
9. Hãy bổ sung xử lý lỗi khi người dùng nhập ký tự thay vì số nguyên.
10. Hãy cải tiến bằng sàng Eratosthenes và so sánh độ phức tạp.
12. Quy trình làm bài dành cho sinh viên
|
Giai đoạn
|
Việc sinh viên làm
|
Câu hỏi cho AI
|
Kết quả
|
|
Hiểu đề
|
Xác định input/output
|
Phân tích, chưa viết code
|
Mô tả bài toán
|
|
Thiết kế
|
Tự dự đoán thuật toán
|
Giải thích isPrime
|
Các bước xử lý
|
|
Lập trình
|
Đọc và chỉnh mã
|
Tạo Main.java
|
Mã Java
|
|
Kiểm thử
|
Chọn dữ liệu
|
Thử 1, 2, 10, 30
|
Kết quả đúng
|
|
Hoàn thiện
|
Giải thích lại
|
Phân tích độ phức tạp
|
Báo cáo ngắn
|
13. Lưu ý khi dùng AI học lập trình
- Không nộp nguyên mã AI tạo khi chưa hiểu.
- Luôn kiểm tra tệp có tên Main.java và lớp public là Main.
- Luôn biên dịch để phát hiện lỗi cú pháp.
- Tự chọn thêm dữ liệu kiểm thử.
- Đặt câu hỏi “vì sao” thay vì chỉ yêu cầu đáp án.
14. Tài liệu tham khảo
Google Antigravity: https://antigravity.google/
Google Codelab - Getting Started with Google Antigravity:
https://codelabs.developers.google.com/getting-started-google-antigravity
Oracle Java Documentation: https://docs.oracle.com/en/java/
(Dịch thuật và tổng hợp)
ThS. Nguyễn Đỗ Thư Hương
Trưởng Bộ môn Cơ sở ngành – Khoa CNTT – ĐT