LH Quảng cáo: lazijsc@gmail.com

Bài tập  /  Bài đang cần trả lời

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.

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.

1 trả lời
Hỏi chi tiết
16
0
0
CenaZero♡
11/09 11:26:25

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 = 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:

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập liên quan
Bài tập Tin học Lớp 10 mới nhất
Trắc nghiệm Tin học Lớp 10 mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Trợ lý ảo Trợ lý ảo
×
Gia sư Lazi Gia sư