Câu hỏi:
13/07/2024 3,256Liệ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.
Sale Tết giảm 50% 2k7: Bộ 20 đề minh họa Toán, Lí, Hóa, Văn, Sử, Địa…. form chuẩn 2025 của Bộ giáo dục (chỉ từ 49k/cuốn).
Sách đề toán-lý-hóa Sách văn-sử-địa Tiếng anh & các môn khác
Quảng cáo
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ị 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á \(\frac{n}{2}\), vì vậy ta chỉ cần thử d trong phạm vi [1, \(\frac{n}{2}\)] 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 = (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:
CÂU HỎI HOT CÙNG CHỦ ĐỀ
Câu 1:
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.
Câu 2:
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.
Câu 3:
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.
Câu 4:
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.
Câu 5:
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.
Câu 6:
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.
15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 16 có đáp án
Đề thi Học kì 1 Tin học 10 (Đề số 1)
15 câu Trắc nghiệm Tin học 10 Cánh diều Biến, phép gán và biểu thức số học có đáp án (Phần 2)
15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 12 có đáp án
Đề thi Học kì 1 Tin học 10 KNTT - Định hướng ICT có đáp án (Đề 1)
15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 17 có đáp án
15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 18 có đáp án
15 câu trắc nghiệm Tin học 10 Kết nối tri thức Bài 9 có đáp án
về câu hỏi!