btvn.vn
Tìm kiếm Đăng nhập

Thiết kế hàm kiểm tra số nguyên tố

Lưu trên thiết bị này
Kĩ thuật lập trình — CS · Chọn bài khác

Bắt đầu từ định nghĩa

Đầu vào là một số nguyên `n ≥ 0`; đầu ra là `True` nếu `n` nguyên tố, `False` nếu không. Theo định nghĩa, số nguyên tố **lớn hơn 1** và chỉ có hai ước dương là 1 và chính nó. Từ yêu cầu này, chia thành ba bước: nếu `n ≤ 1` thì trả `False`; nếu tìm thấy một ước `k` từ 2 đến `n−1` thì trả `False` ngay; nếu thử xong mà không thấy ước nào thì trả `True`. Trường hợp `n = 2` có khoảng thử rỗng, nên trả `True`.

Các nhánh trả về phải ở đúng chỗ

```python def la_nguyen_to(n): if n <= 1: return False for k in range(2, n): if n % k == 0: return False return True print([la_nguyen_to(n) for n in (0, 1, 2, 9, 11)]) ``` Kết quả là `[False, False, True, False, True]`. Với 9, `k = 3` là ước nên dừng sớm. Lệnh `return True` đặt **sau** vòng `for`: chỉ khi không tìm được ước thực sự mới kết luận là nguyên tố. Đây là cách thử ước từ 2 đến `n−1` theo SGK; có thể tối ưu về sau khi đã hiểu đúng quy trình.

Bài luyện

Vì sao `la_nguyen_to(1)` trả `False`?
Chọn một đáp án

Bài luyện

Trong mã bài học, `la_nguyen_to(2)` trả gì?
Chọn một đáp án

Bài luyện

Với `n = 9`, điều gì khiến hàm trả `False`?
Chọn một đáp án

Đang học