मान लीजिए हमारे पास एक धनात्मक पूर्णांक N है, हम अंकों को किसी भी क्रम में (मूल क्रम सहित) इस तरह पुनर्व्यवस्थित करते हैं कि अग्रणी अंक शून्येतर हो। हमें जांचना है कि क्या हम ऐसा कर सकते हैं कि परिणामी संख्या 2 की घात हो।
इसलिए, यदि इनपुट है N = 812, तो आउटपुट True होगा।
इसे हल करने के लिए, हम निम्न चरणों का पालन करेंगे:
i := 1
जब तक i <= 1000000000, करें
s := i को स्ट्रिंग के रूप में
s := s के वर्णों को क्रमबद्ध करें
t := n को स्ट्रिंग के रूप में
t := t के वर्णों को क्रमबद्ध करें
यदि s, t के समान है, तो
True वापस करें
i := i * 2
False वापस करें
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
def solve(n):
i = 1
while i <= 1000000000:
s = str(i)
s = ''.join(sorted(s))
t = str(n)
t = ''.join(sorted(t))
if s == t:
return True
i = i * 2
return False
N = 812
print(solve(N))
इनपुट
812
आउटपुट
True