Program to find Reordered Power of 2 in Python


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

Updated on: 06-Oct-2021

91 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements