Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Lời giải: Ước số thứ k
Hướng tiếp cận
Liệt kê các ước số nhỏ hơn hoặc bằng , sau đó suy ra các ước lớn.
Nhận xét quan trọng
Nếu là ước của và , thì cũng là ước và .
Số ước nhỏ tối đa là với .
Các ước của có thể chia thành:
- Ước nhỏ: với
- Ước lớn: với và
Thuật toán
- Duyệt từ đến , lưu các ước nhỏ vào mảng.
- Tính tổng số ước: nếu là số chính phương, nếu không (với = số ước nhỏ).
- Nếu tổng số ước: in .
- Nếu : in ước nhỏ thứ .
- Ngược lại: in ước nhỏ thứ .
Độ phức tạp
- Thời gian:
- Bộ nhớ: (tối đa ước nhỏ)
Bình luận