Căn bậc B của A

Xem PDF

Điểm: 1000 (p) Thời gian: 0.25s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho hai số nguyên dương \(A\)\(B\), tìm số nguyên dương \(C\) sao cho \(C^B=A\).

Input

  • Gồm 1 dòng duy nhất chứa 2 số \(A, B\).

Output

  • In ra số \(C\) cần tìm.

Constraints

  • \(C \leq 10^5\), \(B \leq 3 \times 10^4\).
  • \(A\) có không quá \(15 \times 10^4\) chữ số.
  • Dữ liệu đầu vào đảm bảo luôn tìm được \(C\) nguyên dương.

Example

Example test 1

Sample input 1
25921 2
Sample output 1
161

Example test 2

Sample input 2
353393243 3
Sample output 2
707

Example test 3

Sample input 3
254116810000 4
Sample output 3
710

Bình luận


  • 0
    hoangphucnguyen    11:11 a.m. 19 Tháng 10, 2024

    Muốn AC bài này, ta cần tìm \(C\) biết \(C^B\) = \(A\). Ta có thể sử dụng lũy thừa ngược trong python ta có công thức sau c = a ** (1 / b). Đó là lý thuyết trong test thì ta sẽ bị overflowerror do số quá lớn. Nhưng ta có thể dùng logarithm math.exp(math.log(a) / b) nhưng vẫn bị TLE và chỉ mới AC 342 trên 500 test. Và ta ép buộc phải dùng tìm kiểm nhị phân nếu muốn AC, tuy nhiên sài tìm kiểm nhị phân còn TLE nhiều hơn nữa nhìn vào 2 code là ta cũng biết. Vậy nếu bạn muốn AC nhiều test nhất có thể thì có thể sử dụng math.exp(math.log(a) / b) vừa ngắn gọn dễ hiểu nhưng vẫn chưa ac😭

    • 20 bình luận nữa