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

जांचें कि क्या N का कोई क्रमपरिवर्तन पायथन में K की किसी भी शक्ति के बराबर है

मान लीजिए, हमारे पास दो धनात्मक पूर्णांक n और m हैं, जैसे कि 2 n 1018 और 2 m ≤ n। हमारा लक्ष्य यह पता लगाना है कि क्या संख्या n के सभी अंकों के क्रमपरिवर्तन हैं; ताकि यह m की कुछ शक्ति के बराबर हो। यदि कोई है, तो हम कहते हैं कि n का एक सर्व-अंक-क्रमपरिवर्तन मौजूद है जो m की शक्ति के बराबर है, अन्यथा हम पिछले कथन को गलत बताते हैं।

उदाहरण के लिए, हमें n =7182 और m =12 दिया गया है। जैसा कि 1728 7182 और 1728 =12^3 का सभी अंकों का क्रमपरिवर्तन है, हम कहते हैं कि n का सभी अंकों का क्रमपरिवर्तन m की शक्ति के बराबर है। ।

इसलिए, यदि इनपुट n=7182, m =12; तब आउटपुट होगा "n का सभी अंकों का क्रमपरिवर्तन m की शक्ति के बराबर है"।

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

  • एक फ़ंक्शन को परिभाषित करें check_power() । इसमें n, m
      . लगेगा
    • temp_arr_1 :=एक नई सूची
    • temp_arr_2 :=एक नई सूची
    • जबकि n> 0, करें
      • temp_arr_1 के अंत में (n mod 10) डालें
      • n :=n / 10 का न्यूनतम मान
    • जबकि एम> 0, करते हैं
      • temp_arr_2 के अंत में (m mod 10) डालें
      • m :=m / 10 का न्यूनतम मान
    • यदि temp_arr_1 का एक नया सेट temp_arr_2 के नए सेट के समान है, तो
      • सही लौटें
    • झूठी वापसी
  • मुख्य विधि से निम्न कार्य करें -
  • power_array :=आकार 100 की एक नई सूची 0s के साथ आरंभ की गई।
  • max_range :=10^18
  • power_array[0] :=m
  • मैं :=1
  • जबकि (power_array[i - 1] *m)
  • power_array[i] :=power_array[i - 1] * m
  • i :=i + 1
  • जे के लिए 0 से i की सीमा में, करें
    • अगर check_power(n, power_array[j]) सही है, तो
      • वापसी "n का सभी अंकों का क्रमपरिवर्तन m के घात के बराबर है"
  • वापसी "कोई भी n का सभी अंकों का क्रमपरिवर्तन m की घात के बराबर नहीं है"
  • आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

    उदाहरण

    def check_power(n, m):
       temp_arr_1 = []
       temp_arr_2 = []
       while (n > 0) :
          temp_arr_1.append(n % 10)
          n //= 10
       while (m > 0) :
          temp_arr_2.append(m % 10)
          m //= 10
       if (set(temp_arr_1) == set(temp_arr_2)):
          return True
       return False
    def solve(n, m):
       power_array = [0] * 100
       max_range = pow(10, 18)
       power_array[0] = m
       i = 1
       while (power_array[i - 1] * m < max_range) :
          power_array[i] = power_array[i - 1] * m
          i += 1
       for j in range(i):
          if (check_power(n, power_array[j])) :
             return "An all digit-permutation of n is equal to a power of m"
       return "No all digit-permutation of n is equal to a power of m"
    n, m = 7182, 12
    print(solve(n, m))

    इनपुट

    7182, 12

    आउटपुट

    An all digit-permutation of n is equal to a power of m

    1. पायथन - जांचें कि क्या एक चर स्ट्रिंग है

      पायथन का उपयोग करके डेटा हेरफेर के दौरान, हमें हेरफेर किए जा रहे चर के डेटा प्रकार का पता लगाने की आवश्यकता हो सकती है। यह हमें उस विशिष्ट डेटा प्रकार के लिए उपयुक्त विधियों या कार्यों को लागू करने में मदद करेगा। इस लेख में हम देखेंगे कि हम कैसे पता लगा सकते हैं कि कोई चर स्ट्रिंग डेटा प्रकार का है

    1. पायथन में अगला क्रमपरिवर्तन

      मान लीजिए कि हम अगली क्रमपरिवर्तन पद्धति को लागू करना चाहते हैं, तो वह विधि संख्याओं को लेक्सिकोग्राफिक रूप से संख्याओं के अगले बड़े क्रमपरिवर्तन में पुनर्व्यवस्थित करती है। यदि ऐसी व्यवस्था संभव नहीं है, तो यह विधि इसे न्यूनतम संभव क्रम के रूप में पुनर्व्यवस्थित करेगी (अर्थात, आरोही क्रम में क्रमबद

    1. पायथन में तीन की शक्ति

      मान लीजिए कि हमारे पास एक संख्या n है। हमें यह जांचना है कि संख्या 3 की शक्ति है या नहीं। अतः यदि संख्या n =27 के समान है, जो कि 3 की घात है, तो परिणाम सत्य होगा, यदि n =15, तो वह असत्य होगा। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - हम इसे हल करने के लिए लघुगणक का उपयोग करेंगे अगर [log10(n