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