आपको एक गैर-पूर्णांक nऔर एक पूर्णांक दिया जाता है p >= 2। आपको प्राप्त करने के लिए कुछ p-th शक्तियाँ ( p=2मतलब वर्ग, p=3मतलब क्यूब्स) को एक साथ जोड़ने की आवश्यकता है n। यह हमेशा किसी भी nonnegative के लिए होता है 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।यह कोड गोल्फ है, इसलिए सबसे छोटा कार्यक्रम जीतता है। जरूरी नहीं कि यह सबसे कुशल हो।
किसी भी और सभी बिल्ट-इन की अनुमति है।
हमेशा की तरह, अगर समस्या स्पष्ट नहीं है, तो कृपया मुझे बताएं। गुड लक और गुड गोल्फिंग!