आपको एक गैर-पूर्णांक 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
।यह कोड गोल्फ है, इसलिए सबसे छोटा कार्यक्रम जीतता है। जरूरी नहीं कि यह सबसे कुशल हो।
किसी भी और सभी बिल्ट-इन की अनुमति है।
हमेशा की तरह, अगर समस्या स्पष्ट नहीं है, तो कृपया मुझे बताएं। गुड लक और गुड गोल्फिंग!