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

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


मान लीजिए हमारे पास दो धनात्मक पूर्णांक n और m हैं, जैसे कि 2 ≤ n ≤ 10¹⁸ और 2 ≤ m ≤ n। हमारा लक्ष्य यह पता लगाना है कि क्या संख्या n के कोई सर्व-अंक-क्रमपरिवर्तन (all-digit-permutations) हैं; ताकि यह m की किसी घात के बराबर हो। यदि ऐसा है, तो हम कहते हैं कि n का एक सर्व-अंक-क्रमपरिवर्तन मौजूद है जो m की घात के बराबर है, अन्यथा हम पिछले कथन को असत्य बताते हैं।

उदाहरण के लिए, n = 7182 और m = 12 दिया गया है। 1728, 7182 का एक सर्व-अंक-क्रमपरिवर्तन है और 1728 = 12³, हम कहते हैं कि n का एक सर्व-अंक-क्रमपरिवर्तन m की घात के बराबर है।

इसलिए, यदि इनपुट n = 7182, m = 12 है, तो आउटपुट "An all digit-permutation of n is equal to a power of m" होगा।

हल करने का तरीका

  1. check_power() फ़ंक्शन परिभाषित करें जो n, m लेता है:
    • दोनों संख्याओं के अंकों को सूचियों में निकालें
    • यदि दोनों के अंकों का समुच्चय समान है, तो True लौटाएं
  2. मुख्य विधि से:
    • power_array := आकार 100 की सूची 0 से प्रारंभ
    • max_range := 10¹⁸
    • m की घातें गणना करें जब तक max_range से कम हों
    • प्रत्येक घात के लिए check_power(n, power) जांचें
    • यदि कोई मेल खाता है, तो सफलता संदेश लौटाएं
  3. असफलता संदेश लौटाएं

उदाहरण

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. - Python में जांचें कि कोई चर स्ट्रिंग है या नहीं

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

  1. - पायथन में नेक्स्ट पर्मुटेशन

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

  1. - पायथन में तीन की घात

    मान लीजिए हमारे पास एक संख्या n है। हमें जांचना है कि क्या संख्या 3 की घात है या नहीं। यदि संख्या n = 27 जैसी है, जो 3 की घात है, तो परिणाम true होगा, यदि n = 15, तो false होगा। हल करने के चरण हम इसे हल करने के लिए लघुगणक का उपयोग करेंगे यदि [log10(n) / log10(3)] mod 1 == 0, तो यह तीन की घात होगी,