Vé số trúng thưởng siêu thị VinMart – Tìm lỗi trong hàm kiểm tra số nguyên tố
Thang điểm 10 · 6 test case chấm tự động · 3 tiêu chí chấm
Siêu thị VinMart dùng chương trình sau để kiểm tra một số nguyên n (ghi trên hoá đơn) có phải là số nguyên tố hay không, nếu đúng thì khách hàng được thông báo Trung thuong, ngược lại thông báo Khong trung thuong.
Đoạn code hiện tại như sau:
def is_special(n):C = 0k = 1while k <= n:if n % k == 0:C = C + 1k = k + 1return C == 1
Ví dụ khi nhập n = 2, chương trình lại in ra Khong trung thuong dù 2 là số nguyên tố! Em hãy chỉ ra dòng lệnh gây lỗi, giải thích tại sao nó sai (so sánh với thuật toán đếm ước đã học ở bài prime(n)), rồi sửa lại chương trình cho đúng. Chương trình hoàn chỉnh đọc một số nguyên n từ bàn phím và in ra Trung thuong nếu n là số nguyên tố, ngược lại in Khong trung thuong.
Định dạng vào/ra: Input là một số nguyên n trên một dòng. Output là một dòng chữ.
| Input | Output | Giải thích |
|---|---|---|
| 2 | Trung thuong | 2 chỉ có ước 1 trong khoảng 1..n-1 nên C=1, là số nguyên tố |
| 1 | Khong trung thuong | 1 không có ước nào trong khoảng 1..0 nên C=0, không phải số nguyên tố |
| 13 | Trung thuong | 13 là số nguyên tố |
| 15 | Khong trung thuong | 15 = 3 x 5, có nhiều hơn 1 ước |
Giáo viên giao bài này cho lớp, học sinh nộp bài trực tuyến và được chấm tự động.
Giáo viên đăng nhập để giao bàiBài tập khác lớp 10
- Xét kết quả Đạt / Không đạt · Lập trình
- Cân lại mẫu đá thiên thạch trên các hành tinh khác · Lập trình
- Khám phá tên đăng nhập mạng xã hội · Lập trình
- Tính điểm trung bình 3 môn thi · Lập trình
- Tìm lỗi: Tổng lượt xem video theo ngày · Lập trình
- Tra cứu điểm số theo chỉ số danh sách · Lập trình