मान लीजिए, हमारे पास दो धनात्मक पूर्णांक 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
- अगर check_power(n, power_array[j]) सही है, तो
- वापसी "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