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ả

1.2 K

Với giải Câu F44 trang 32 SBT Tin học lớp 10 Cánh diều chi tiết trong Bài 8, 9 (Cánh diều): Câu lệnh lặp thực hành câu lệnh lặp giúp học sinh dễ dàng xem và so sánh lời giải từ đó biết cách làm bài tập trong SBT Tin học 10. Mời các bạn đón xem:

Giải SBT Tin học lớp 10 Bài 8, 9 (Cánh diều): Câu lệnh lặp thực hành câu lệnh lặp

Câu F44 trang 32 SBT Tin 10Liệ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.

Trả lời:

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ị đó. Tham khảo chương trình sau:

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á n2, vì vậy ta chỉ cần thử d trong phạm vi [1, n2] 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ì “nd cũng là ước số của n”. Trong hai ước số d và nd, chắc chắn có một số nhỏ hơn hoặc bằng n. Vì thế ta chỉ cần thử d trong phạm vi [1; 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 nd

Lưu ý: Trường hợp d = nd (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:

Xem thêm lời giải sách bài tập Tin học 10 Cánh diều hay, chi tiết khác:

Câu F35 trang 31 SBT Tin 10In ra các số lẻ...

Câu F36 trang 31 SBT Tin 10In ra các số chẵn...

Câu F37 trang 31 SBT Tin 10In ra tổng các số chia hết cho 3 hoặc chia hết cho 5...

Câu F38 trang 31 SBT Tin 10In ra tổng các số chỉ chia hết cho 3 hoặc 5...

Câu F39 trang 32 SBT Tin 10Đọc hiểu chương trình...

Câu F40 trang 32 SBT Tin 10: Tìm lỗi cho cấu trúc lặp...

Câu F41 trang 32 SBT Tin 10Tổng chữ số...

Câu F42 trang 32 SBT Tin 10Tính giai thừa...

Câu F43 trang 32 SBT Tin 10Tìm ước chung lớn nhất...

Xem thêm các bài giải SBT Tin học lớp 10 Cánh diều hay, chi tiết khác:

Bài 6, 7: Câu lệnh rẽ nhánh - Thực hành câu lệnh rẽ nhánh

Bài 8, 9: Câu lệnh lặp thực hành câu lệnh lặp

Bài 10, 11: Chương trình con và thư viện chương trình con có sẵn - Thực hành lập trình với hàm và thư viện

Bài 12, 13: Kiểu dữ liệu xâu kí tự - xử lí xâu kí tự - Thực hành dữ liệu kiểu xâu

Bài 16: Kiểm thử và gỡ lỗi chương trình

Đánh giá

0

0 đánh giá