Đ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\) và \(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
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 logarithmmath.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ụngmath.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