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

Dùng for để đếm và tìm ước

Lưu trên thiết bị này
Rẽ nhánh và vòng lặp trong Python · Chọn bài khác

Biến đếm chỉ tăng khi điều kiện đúng

Trong đoạn mã, `k` chạy từ 1 đến 10. `dem` bắt đầu 0 và chỉ tăng khi `k % 3 == 0`. Các giá trị thỏa là 3, 6, 9 nên kết quả in là 3: ```python dem = 0 for k in range(1, 11): if k % 3 == 0: dem = dem + 1 print(dem) ``` Vòng for chạy mười lượt, nhưng **số được đếm** chỉ có ba. Đừng nhầm số lượt xét với số lần điều kiện đúng.

Bài luyện

Vòng trong bài xét từ 1 đến 10, đếm số chia hết cho 3. `dem` cuối cùng là mấy?
Chọn một đáp án

Ước của n được tìm bằng phép dư

Nhiệm vụ: tạo `uoc-so.py`, đặt `n = 10` và in các ước dương. Chỉ xét `n` nguyên dương vì phép chia cho `k` phải có `k >= 1` và khái niệm số ước của 0 không phù hợp bài này. ```python n = 10 for k in range(1, n + 1): if n % k == 0: print(k, end=" ") ``` Kết quả là `1 2 5 10`. Thử `n = 1` thì chỉ in `1`. Nếu cần **ước thực sự** (nhỏ hơn n), đổi vùng xét thành `range(1, n)`; với n = 10 còn `1 2 5`, với n = 1 không có ước thực sự. Nếu thiếu n trong kết quả tìm mọi ước, kiểm điểm dừng có phải `n + 1` hay không.

Bài luyện

Mã tìm mọi ước của `n = 10` trong bài in dãy nào?
Chọn một đáp án

Bài luyện

Muốn chỉ in ước thực sự của `n = 10` bằng mã trên, cần đổi vùng xét thành gì?
Chọn một đáp án

Bài luyện

Với `n = 1`, mã tìm ước thực sự dùng `range(1, n)` chạy bao nhiêu lượt?
Chọn một đáp án

Đang học