Sie erhalten eine nichtnegative Ganzzahl nund eine Ganzzahl p >= 2. Sie müssen einige pPotenzen ( p=2bedeutet Quadrate, p=3bedeutet Würfel) addieren , um zu erhalten n. Dies gilt immer für alle nichtnegativen Potenzen n, Sie kennen jedoch nicht viele pPotenzen ( positive ganze Zahlen), die Sie benötigen.
Dies ist Ihre Aufgabe: Finden Sie die minimale Anzahl von pPotenzen, die sich summieren können n.
Beispiele
>>> 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
Ein verwandter Wikipedia-Artikel zu diesem Problem, Warings Problem .
Regeln
Ihr Code muss ein Programm oder eine Funktion sein.
Die Eingabe erfolgt in zwei Ganzzahlen
nundpin beliebiger Reihenfolge. Sie können davon ausgehen, dass alle Eingaben gültig sind (nist eine positive ganze Zahl,p >= 2Die Ausgabe ist eine Ganzzahl, die die Anzahl der Potenzen angibt, die summiert werden müssen
n.Dies ist Codegolf, also gewinnt das kürzeste Programm , nicht unbedingt das effizienteste.
Alle eingebauten sind erlaubt.
Wie immer, wenn das Problem unklar ist, lassen Sie es mich bitte wissen. Viel Glück und gutes Golfen!