Sie erhalten eine nichtnegative Ganzzahl n
und eine Ganzzahl p >= 2
. Sie müssen einige p
Potenzen ( p=2
bedeutet Quadrate, p=3
bedeutet Würfel) addieren , um zu erhalten n
. Dies gilt immer für alle nichtnegativen Potenzen n
, Sie kennen jedoch nicht viele p
Potenzen ( positive ganze Zahlen), die Sie benötigen.
Dies ist Ihre Aufgabe: Finden Sie die minimale Anzahl von p
Potenzen, 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
n
undp
in beliebiger Reihenfolge. Sie können davon ausgehen, dass alle Eingaben gültig sind (n
ist eine positive ganze Zahl,p >= 2
Die 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!