Liệt kê ước số

Bài tập F44: Liệt kê ước số

Viết chương trình nhập vào một số nguyên dương n và in ra tất cả các ước số của n.

Bài Làm:

Cách 1: Một trong những giải pháp đơn giản là thử mọi giá trị số nguyên d từ l tới n, mỗi khi gặp một giá trị ở là ước số của n thì in ra ngay giá trị d đó. Tham khảo chương trình sau:

Liệt kê ước số

Ví dụ: 

Input

Output

60

1     2     3     4     5     6     10     12     15     20     30     60

Cách 2: Cách làm trên khá chậm khi gặp giá trị n lớn (chẳng hạn n = 109). Một cải tiến nhỏ là dựa vào nhận xét: Ngoại trừ ước d = n, tất cả các ước số khác của n đều không vượt quá $\frac{n}{2}$, vì vậy ta chỉ cần thử d trong phạm vi $\begin{bmatrix}1;\frac{n}{2}&\end{bmatrix}$ còn riêng ước d = n sẽ được in ra sau. Mặc dù tốc độ chương trình cải thiện gấp đôi, phương pháp này vẫn còn rất chậm.

Cách 3: Dựa vào nhận xét: Nếu d là ước số của n thì $\frac{n}{d}$ cũng là ước số của n. Trong hai ước số d và $\frac{n}{d}$, chắc chắn có một số nhỏ hơn hoặc bằng $\sqrt{n}$. Vì thế ta chỉ cần thử d trong phạm vi [1; $\sqrt{n}$], khi tìm thấy một ước số d của n trong phạm vi này, ta in ra d và in ra luôn cả ước $\frac{n}{d}$.

Lưu ý: Trường hợp d = $\frac{n}{d}$ (n là số chính phương), ta chỉ được in ra một ước để tránh trùng lặp.

Tham khảo chương trình sau:

Liệt kê ước số

Xem thêm Bài tập & Lời giải

Trong: Giải SBT tin học 10 cánh diều bài 8,9 Câu lệnh lặp. Thực hành câu lệnh lặp

Bài tập F35: In ra các số lẻ

Viết chương trình nhập vào số nguyên n và in ra các số nguyên dương lẻ không lớn hơn n theo thứ tự tăng dần.

Xem lời giải

Bài tập F36: In ra các số chẵn

Viết chương trình nhập vào số nguyên n và in ra các số nguyên dương chẵn không lớn hơn n theo thứ tự giảm dần.

Xem lời giải

Bài tập F37: In ra tổng các số chia hết cho 3 hoặc chia hết cho 5

Với n nhập từ bàn phím, viết chương trình đưa ra màn hình tổng các số tự nhiên nhỏ hơn n và chia hết cho 3 hoặc chia hết cho 5.

Xem lời giải

Bài tập F38: In ra tổng các số chỉ chia hết cho 3 hoặc 5

Viết chương trình đưa ra màn hình tổng các số nguyên chỉ chia hết cho 3 hoặc 5 nhưng không đồng thời chia hết cho cả 3 và 5 trong phạm vi các số nguyên từ m đến n-1. Ngừng tính tổng khi nhận được tổng lớn hơn hoặc bằng b cho trước. Các số nguyên m, n, b được nhập vào từ bàn phím với m < n.

Xem lời giải

Bài tập F39: Đọc hiểu chương trình

Virus X có khả năng lây nhiễm mạnh, sau mỗi ngày số lượng người nhiễm tăng lên gấp đôi. Cụ thể, nếu ngày hôm nay có p người bị nhiễm thì sang ngày tiếp theo sẽ có 2p người bị nhiễm. Chương trình sau đây cho nhập vào số lượng người bị nhiễm và đưa ra sau bao nhiêu ngày thì số lượng người bị nhiễm sẽ vượt quá 1 triệu người. Em hãy hoàn thiện câu lệnh còn khuyết để nhận được chương trình đúng.

Xem lời giải

Bài tập F40: Tìm lỗi cho cấu trúc lặp

Chương trình ở hình bên nhập vào hai số thực dương a, b với a < b và tính tổng tất cả các số nguyên không nhỏ hơn a và không lớn hơn b. Tuy nhiên, chương trình vẫn có lỗi. Chạy chương trình với a = 1,1 và b = 3,9 để thấy lỗi của chương trình. Em hãy tìm và sửa lỗi để nhận được chương trình đúng.

Tìm lỗi cho cấu trúc lặp

Xem lời giải

Bài tập F41: Tổng chữ số

Viết chương trình nhập vào số nguyên dương n và in ra tổng các chữ số trong biểu diễn thập phân của n.

Xem lời giải

Bài tập F42: Tính giai thừa

Viết chương trình nhập vào một số nguyên dương n và in ra giá trị giai thừa của n.

Xem lời giải

Bài tập F43: Tìm ước chung lớn nhất

Viết chương trình nhập vào hai số tự nhiên a, b không đồng thời bằng 0 và in ra ước số chung lớn nhất của a, b.

Xem lời giải

Xem thêm các bài Giải SBT tin học 10 cánh diều, hay khác:

Xem thêm các bài Giải SBT tin học 10 cánh diều được biên soạn cho Học kì 1 & Học kì 2 theo mẫu chuẩn của Bộ Giáo dục theo sát chương trình Lớp 10 giúp bạn học tốt hơn.

Xem Thêm

Lớp 10 | Để học tốt Lớp 10 | Giải bài tập Lớp 10

Giải bài tập SGK, SBT, VBT và Trắc nghiệm các môn học Lớp 10, dưới đây là mục lục các bài giải bài tập sách giáo khoa và Đề thi chi tiết với câu hỏi bài tập, đề kiểm tra 15 phút, 45 phút (1 tiết), đề thi học kì 1 và 2 (đề kiểm tra học kì 1 và 2) các môn trong chương trình Lớp 10 giúp bạn học tốt hơn.

Lớp 10 - Kết nối tri thức

Giải sách giáo khoa

Giải sách bài tập