
sumExponential
Trang đang học về những con số, Trang muốn kiểm tra xem số nguyên dương n có các đặc tính sau không:
n
phân tích được thành tổng của ít nhất2
lũy thừa cùng cơ số với số mũ khác nhau. Với điều kiện mỗi lũy thừa là:- Số mũ phải lớn hơn
0
. - Cơ số phải lớn hơn
2
.
- Số mũ phải lớn hơn
Cho số nguyên dương n
, hãy kiểm tra xem n có thể phần tích được thành tổng của các lũy thừa như trên không.
Trả về -1
nếu không thể, nếu có thể thì đưa ra cơ số, nếu có nhiều cách thì đưa ra cơ số nhỏ nhất.
Ví dụ:
- Với
n = 12
, thìsumExponential(n)=3.
Giải thích:12 = 31+32.
- Với
n = 1108
, thìsumExponential(n)=4.
Giải thích:1108= 41+42+43+45.
- Với
n = 11
, thìsumExponential(n)=-1.
Đầu vào/Đầu ra:
-
[Thời gian chạy] 0.5s với C++, 3s với Java và C#, 4s với Python, Go và JavaScript.
-
[Đầu vào] Integer a
0 ≤ a ≤ 109.
-
[Đầu ra] Integer
Trả về-1
nếu không thể, nếu có thể thì đưa ra cơ số, nếu có nhiều cách thì đưa ra cơ số nhỏ nhất.
Author: Phan Đức Hải
Fanpage: CodeLearn.io
Group: Codelearn – Tự học lập trình C#, C++, Java, Python,Basic algorithms.
Post Comment