Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में शक्तिशाली पूर्णांक

मान लीजिए हमारे पास दो धनात्मक पूर्णांक x और y हैं, हम कह सकते हैं कि एक पूर्णांक शक्तिशाली है यदि यह कुछ पूर्णांक i >= 0 और j >= 0 के लिए x^i + y^j के बराबर है। हमें उन सभी शक्तिशाली पूर्णांकों की सूची ढूंढनी है जिनका मान बाउंड से कम या बराबर है।

तो, यदि इनपुट x = 2 और y = 3 और बाउंड 10 है, तो आउटपुट [2,3,4,5,7,9,10] होगा, जैसे 2 = 2^0 + 3^0, 3 = 2^1 + 3^0, 4 = 2^0 + 3^1, 5 = 2^1 + 3^1, 7 = 2^2 + 3^1, 9 = 2^3 + 3^0, 10 = 2^0 + 3^2

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • a, b को 0 से आरंभ करें
  • res:= एक नई सूची
  • यदि x, 1 के समान है और y, 1 के समान है, तो
    • यदि bound >= 2, तो
      • res के अंत में 2 डालें
  • अन्यथा जब x, 1 के समान है, तो
    • जब y^b + 1 <= bound, करें
      • y^b + 1 को res में डालें
      • b := b + 1
  • अन्यथा जब y, 1 के समान है, तो
    • जब x^a + 1 <= bound, करें
      • x^a + 1 को res में डालें
      • a := a + 1
  • अन्यथा,
    • जब x^a + 1 <= bound, करें
      • यदि x^a + y^b <= bound, तो
        • res में x^a + y^b डालें
        • b := b + 1
      • अन्यथा,
        • a := a + 1
        • b:= 0

बेहतर समझ के लिए निम्न कार्यान्वयन देखें -

उदाहरण

class Solution:
    def powerfulIntegers(self, x, y, bound):
        a, b = 0, 0
        res = []
        if x == 1 and y == 1:
            if bound >= 2:
                res.append(2)
        elif x == 1:
            while y**b + 1 <= bound:
                res.append(y**b + 1)
                b += 1
        elif y == 1:
            while x**a + 1 <= bound:
                res.append(x**a + 1)
                a += 1
        else:
            while x**a + 1 <= bound:
                if x**a + y**b <= bound:
                    res.append(x**a + y**b)
                    b += 1
                else:
                    a += 1
                    b = 0
        return list(set(res))

ob = Solution()
print(ob.powerfulIntegers(2, 3, 10))

इनपुट

2,3,10

आउटपुट

[2, 3, 4, 5, 7, 9, 10]
  1. पायथन में issuperset() फंक्शन पायथन में issuperset() फंक्शन

    इस लेख में, हम पायथन में issuperset() और विभिन्न क्षेत्रों में इसके कार्यान्वयन के बारे में जानेंगे।यह मेथड बूलियन True वापस करता है यदि सेट B के सभी तत्व सेट A के सभी तत्वों को समाहित करते हैं जिसे तर्क के रूप में पारित किया जाता है और झूठा वापस करता है यदि A के सभी तत्व B में मौजूद नहीं हैं।इसका म

  1. - Python में कैलेंडर

    Python में कैलेंडर मॉड्यूल में कैलेंडर और तारीखों से संबंधित सभी सुविधाओं को संभालने की विशेषताएं हैं। यह सबसे व्यापक रूप से उपयोग किए जाने वाले मॉड्यूल में से एक है जिसमें Python प्रोग्राम में तारीखों का उपयोग करने के लिए कई इनबिल्ट फ़ंक्शन हैं।उदाहरणimport calendar print(calendar.calendar(2019))आउ

  1. - Python में frozenset()

    यह फ़ंक्शन एक परिवर्तनीय सूची को अपरिवर्तनीय में बदलने में मदद करता है। इसकी आवश्यकता तब होती है जब हमने एक सूची घोषित की हो जिसके आइटम बदलने योग्य हों लेकिन कुछ चरणों के बाद हम इसमें तत्वों को बदलने की अनुमति देना बंद करना चाहते हों। ऐसे परिदृश्य में, हम नीचे दिखाए अनुसार frozenset() फ़ंक्शन लागू क