[VTT Q4 Contest 09] Bài 3: Ước số [DIVISOR]

Xem dạng PDF

Gửi bài giải


Điểm: 3,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: DIVISOR.INP
Output: DIVISOR.OUT

Dạng bài
Ngôn ngữ cho phép
C++, Pascal, PyPy, Python

Cho số nguyên dương ~n~. Liệt kê mọi ước nguyên dương của ~n~ theo thứ tự tăng dần và đánh số từ ~1~. Hãy tìm ước thứ ~k~ trong danh sách đó.

Dữ liệu

Một dòng chứa hai số nguyên dương ~n~ và ~k~ (~1 \le n \le 10^{15}~, ~1 \le k \le 10^9~).

Kết quả

In ra ước thứ ~k~ của ~n~, hoặc in ra -1 nếu ~n~ có ít hơn ~k~ ước.

Ví dụ

Ví dụ 1

DIVISOR.INP

100 8

DIVISOR.OUT

50
Ví dụ 2

DIVISOR.INP

9 5

DIVISOR.OUT

-1

Giải thích: Ở ví dụ 1, các ước của ~100~ là 1, 2, 4, 5, 10, 20, 25, 50, 100; ước thứ 8 là ~50~. Ở ví dụ 2, ~9~ chỉ có các ước 1, 3, 9 nên không có ước thứ 5.

Giới hạn

  • Subtask 1 (50% số điểm): ~n \le 10^6~.
  • Subtask 2 (30% số điểm): ~n \le 10^9~.
  • Subtask 3 (20% số điểm): không có ràng buộc gì thêm.

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.