Bạn Hà viết chương trình ở Hình 2 để đếm xem số nguyên n nhập vào từ bàn phím

Giải Tin học 10 Bài 9: Thực hành câu lệnh lặp

Bài 2 trang 84 Tin học 10: Bạn Hà viết chương trình ở Hình 2 để đếm xem số nguyên n nhập vào từ bàn phím có bao nhiêu ước thực sự (khác 1 và n). Tuy nhiên, chương trình chạy ra kết quả sai, em hãy sửa lỗi giúp Hà.

Bạn Hà viết chương trình ở Hình 2 để đếm xem số nguyên n nhập vào từ bàn phím

Quảng cáo

Lời giải:

Chương trình ở hình 2 có 2 lỗi:

Một là, sau điều kiện ở lệnh while phải có dấu hai chấm (:).

Hai là, chương trình là đếm số ước thực sự của n, vì vậy sau mỗi lần tìm thấy ước của n (n%i == 0) thì biến so_uoc tăng lên 1 đơn vị. Giá trị cuối cùng của biến so_uoc chính là số lượng ước của n. Vì vậy, câu lệnh print phải được đặt ngoài vòng lặp while để sau khi đếm xong số ước chúng ta mới viết ra màn hình. Chương trình viết lại như sau:

Bạn Hà viết chương trình ở Hình 2 để đếm xem số nguyên n nhập vào từ bàn phím

Bạn Hà viết chương trình ở Hình 2 để đếm xem số nguyên n nhập vào từ bàn phím

Quảng cáo


Cách làm tối ưu

Chúng ta nhận thấy rằng, các ước thực sự của n sẽ nằm trong khoảng từ 2 đến n-1.

- Dựa vào tính chất trong toán học, nếu n có ước thực sự thì chắc chắn có ước trong khoảng từ 2 đến căn của n.

- Nếu i là ước của n thì n/i chắc chắn là ước của n. Thật vậy: giả sử n=24 thì 2 là ước của 24 và 24/2 = 12 cũng là ước của 24.

Vì vậy để đếm số ước thực sự của n thì chúng ta chỉ cần duyệt i tăng từ 2 đến căn n. Nếu n chia hết cho i thì số lượng ước tăng lên 1. Và nếu i khác n/i thì số lượng ước sẽ tăng thêm 1 nữa. Ví dụ n=24, với i = 2 thì số lượng ước tăng 1, vì n/i = 12 khác 2 nên số lượng ước tăng thêm 1. Nếu n=9, i =3 thì chúng ta chỉ cộng thêm 1 ước vì n/i =i.

Quảng cáo

Chương trình tối ưu được viết như sau:

Bạn Hà viết chương trình ở Hình 2 để đếm xem số nguyên n nhập vào từ bàn phím

Quảng cáo

Xem thêm lời giải bài tập Tin học lớp 10 Cánh diều hay nhất, ngắn gọn khác:

Tủ sách VIETJACK shopee lớp 10-11 cho học sinh và giáo viên (cả 3 bộ sách):

Săn shopee siêu SALE :

ĐỀ THI, GIÁO ÁN, GÓI THI ONLINE DÀNH CHO GIÁO VIÊN VÀ PHỤ HUYNH LỚP 10

Bộ giáo án, bài giảng powerpoint, đề thi dành cho giáo viên và gia sư dành cho phụ huynh tại https://tailieugiaovien.com.vn/ . Hỗ trợ zalo VietJack Official

Tổng đài hỗ trợ đăng ký : 084 283 45 85

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Nếu thấy hay, hãy động viên và chia sẻ nhé! Các bình luận không phù hợp với nội quy bình luận trang web sẽ bị cấm bình luận vĩnh viễn.


Giải bài tập lớp 10 Cánh diều khác
Tài liệu giáo viên