Với Giải Câu F44 trang 32 SBT Tin học 10 Cánh diều trong Bài 8, 9: Câu lệnh lặp. Thực hành câu lệnh lặp Sách bài tập Tin học 10 Cánh diều hay nhất, chi tiết sẽ giúp học sinh dễ dàng làm bài tập trong SBT Tin học 10.
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.
Câu F44 trang 32 SBT Tin học 10: 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.
Lời giả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ị d đó. 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á , vì vậy ta chỉ cần thử d trong phạm vi [1, ] 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ì “ cũng là ước số của n”. Trong hai ước số d và , chắc chắn có một số nhỏ hơn hoặc bằng . Vì thế ta chỉ cần thử d trong phạm vi [1; ], 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
Lưu ý: Trường hợp 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:
Xem thêm lời giải SBT Tin học 10 Cánh diều hay, chi tiết khác:
Câu F35 trang 31 SBT Tin học 10: In ra các số lẻ
Câu F36 trang 31 SBT Tin học 10: In ra các số chẵn
Câu F37 trang 31 SBT Tin học 10: In 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 học 10: In ra tổng các số chỉ chia hết cho 3 hoặc 5
Câu F39 trang 32 SBT Tin học 10: Đọc hiểu chương trình
Câu F40 trang 32 SBT Tin học 10: Tìm lỗi cho cấu trúc lặp
Câu F41 trang 32 SBT Tin học 10: Tổng chữ số
Câu F42 trang 32 SBT Tin học 10: Tính giai thừa
Câu F43 trang 32 SBT Tin học 10: Tìm ước chung lớn nhất
Câu F44 trang 32 SBT Tin học 10: Liệt kê ước số
Xem thêm lời giải SBT Tin học 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 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 14, 15: Kiểu dữ liệu danh sách - Xử lí danh sách. Thực hành với dữ liệu kiểu danh sách
CÔNG TY TNHH ĐẦU TƯ VÀ DỊCH VỤ GIÁO DỤC VIETJACK
- Người đại diện: Nguyễn Thanh Tuyền
- Số giấy chứng nhận đăng ký kinh doanh: 0108307822, ngày cấp: 04/06/2018, nơi cấp: Sở Kế hoạch và Đầu tư thành phố Hà Nội.
2021 © All Rights Reserved.