Suppose we have a positive integer N, we reorder the digits in any order (including the original order) such that the leading digit is non-zero. We have to check whether we can do this in a way such that the resulting number is a power of 2.
So, if the input is like N = 812, then the output will be True
To solve this, we will follow these steps −
i:= 1
while i<=1000000000, do
s:= i as a string
s:= sort characters of s
t:= n as a string
t:= sort characters of t
if s is same as t, then
return True
i:= i*2
return False
Example
Let us see the following implementation to get better understanding −
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))
Input
812
Output
True