Loading Now

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ất 2 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.

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

Contact