Вам дано невід’ємне ціле n
і ціле число p >= 2
. Вам потрібно додати деякі p
-і сили ( p=2
означає квадрати, p=3
куби) разом, щоб отримати n
. Це завжди для будь-якого негативного характеру n
, але ви не знаєте багатьох p
-значень (будь-якого додатного цілого числа), які вам знадобляться.
Це ваше завдання: знайти мінімальну кількість p
повноцінних повноважень, до яких можна довести n
.
Приклади
>>> 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
Відповідна стаття у Вікіпедії щодо цієї проблеми, проблема Варінга .
Правила
Ваш код повинен бути програмою або функцією.
Вхід - два цілі числа
n
іp
в будь-якому порядку. Ви можете припустити, що всі вхідні дані є дійсними (n
будь-яке додатне ціле число,p >= 2
Вихід - це ціле число, що представляє кількість потужностей, необхідних для підсумовування
n
.Це кодовий гольф, тому найкоротша програма виграє. Не обов'язково найефективніша.
Будь-які та всі вбудовані дозволені.
Як завжди, якщо проблема неясна, будь ласка, повідомте мене про це. Успіхів і хорошого гольфу!