음이 아닌 정수 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
이 문제에 관한 Wikipedia 관련 기사, Waring 's problem .
규칙
코드 는 프로그램 또는 함수 여야합니다 .
입력은 2 개의 정수
n
이며p
순서에 관계없이 입력됩니다 . 모든 입력이 유효하다고 가정 할 수 있습니다 (n
양의 정수,p >= 2
출력은에 필요한 전력의 수를 나타내는 정수
n
입니다.이것은 코드 골프이므로 가장 짧은 프로그램이 승리합니다. 반드시 가장 효율적인 것은 아닙니다.
모든 내장 기능이 허용됩니다.
문제가 명확하지 않은 경우 언제든지 알려주십시오. 행운과 좋은 골프!