Otrzymujesz nieujemną liczbę całkowitą n
i liczbę całkowitą p >= 2
. Musisz dodać razem p
-te moce ( p=2
oznacza kwadraty, p=3
oznacza sześciany), aby je zdobyć n
. Dzieje się tak zawsze dla każdej nieujemnej n
, ale nie znasz wielu p
potęg (jakiejkolwiek dodatniej liczby całkowitej), których potrzebujesz.
Oto twoje zadanie: znajdź minimalną liczbę p
-tych mocy, które można sumować n
.
Przykłady
>>> min_powers(7, 2)
4 # you need at least four squares to add to 7
# Example: (2)^2 + (1)^2 + (1)^2 + (1)^2 = 4 + 1 + 1 + 1 = 7
>>> min_powers(4, 2)
1 # you need at least one square to add to 4
# Example: (2)^2 = 4
>>> min_powers(7, 3)
7 # you need at least seven cubes to add to 7
# Example: 7*(1)^3 = 7
>>> min_powers(23, 3)
9 # you need at least nine cubes to add to 23
# Example: 2*(2)^3 + 7*(1)^2 = 2*8 + 7*1 = 23
Powiązany artykuł w Wikipedii na temat tego problemu, problemu Waringa .
Zasady
Twój kod musi być programem lub funkcją.
Wejście to dwie liczby całkowite
n
ip
w dowolnej kolejności. Możesz założyć, że wszystkie dane wejściowe są prawidłowe (n
dowolna dodatnia liczba całkowita,p >= 2
Dane wyjściowe to liczba całkowita reprezentująca liczbę potęg potrzebnych do sumowania
n
.To jest golf golfowy, więc wygrywa najkrótszy program , niekoniecznie najbardziej wydajny.
Wszelkie wbudowane elementy są dozwolone.
Jak zawsze, jeśli problem jest niejasny, daj mi znać. Powodzenia i dobrej gry w golfa!