
findSpecialNumber
1 số được coi là đặc biệt nếu như số đó có thể phần tích thành tổng các các lũy thừa cơ số k riêng biệt,
Ví dụ: 10 là số đặc biệt cơ số 3 vì 10 = 3^2 + 3^0.
DAN muốn tìm số đặc biệt bé nhất mà lớn hơn hoặc bằng n
, hãy giúp DAN. Do kết quả có thể rất lớn nên hãy trả về phần dư cho 10^9 + 7.
Ví dụ:
Với n = 8, k = 3
thì findSpecialNumber(n, k) = 9.
Ta có 9 = 3^2.
Với n = 17, k = 4
thì findSpecialNumber(n, k) = 20.
Ta có 20 = 4^1 + 4^2.
Đầu vào/ Đầu ra:
- Giới hạn thời gian chạy: 0.5 giây với C++, 3 giây với Java và C#, 4 giây với Python, GO và Js.
- [Đầu vào] Integer n, k
0 <= n <= 10^7
2 <= k <= 10^7 - [Đầu ra] Integer
Post Comment