# Check if permutation of number is power of 2 or not

Here given code implementation process.

``````// C program
// Check if permutation of number is power of 2 or not
#include <stdio.h>

// Check the both number have frequency is same or not
int isSameDigit(int num, int power)
{
// Use to count number digit frequency
// Digit [0 - 9]
int a;
int b;
// Loop controlling variable
int i = 0;
// Set the initial frequency
for (i = 0; i < 10; ++i)
{
a[i] = 0;
b[i] = 0;
}
// Count digit frequency of num
while (num > 0)
{
a[num % 10] += 1;
// Remove last digit
num = num / 10;
}
// Count digit frequency of power value
while (power > 0)
{
b[power % 10]++;
// Remove last digit
power = power / 10;
}
// Compare frequency of both number
for (i = 0; i < 10; ++i)
{
if (a[i] != b[i])
{
// When frequency are not same
return 0;
}
}
return 1;
}
void isPowerof2(int num)
{
int result = 0;
printf("\n Given num : %d", num);
if (num > 0)
{
// Check all power of 2 in 32 bit integer
for (int i = 0; i < 31 && result == 0; ++i)
{
if (num == (1 << i) || isSameDigit(num, 1 << i) == 1)
{
// Get resultant power
result = (1 << i);
}
}
}
if (result != 0)
{
printf("\n Permutation %d is power of 2\n", result);
}
else
{
printf("\n No permutation of number %d is power of 2\n", num);
}
}
int main(int argc, char
const *argv[])
{
// Test cases
isPowerof2(76328);
isPowerof2(1234);
isPowerof2(8240);
isPowerof2(23);
isPowerof2(21);
return 0;
}``````

#### input

`````` Given num : 76328
Permutation 32768 is power of 2

Given num : 1234
No permutation of number 1234 is power of 2

Given num : 8240
Permutation 2048 is power of 2

Given num : 23
Permutation 32 is power of 2

Given num : 21
No permutation of number 21 is power of 2``````
``````// Java program for
// Check if permutation of number is power of 2 or not
public class PermutationPower
{
// Check the both number have frequency is same or not
public int isSameDigit(int num, int power)
{
// Use to count number digit frequency
// Digit [0 - 9]
int[] a = new int;
int[] b = new int;
// Loop controlling variable
int i = 0;
// Set the initial frequency
for (i = 0; i < 10; ++i)
{
a[i] = 0;
b[i] = 0;
}
// Count digit frequency of num
while (num > 0)
{
a[num % 10] += 1;
// Remove last digit
num = num / 10;
}
// Count digit frequency of power value
while (power > 0)
{
b[power % 10]++;
// Remove last digit
power = power / 10;
}
// Compare frequency of both number
for (i = 0; i < 10; ++i)
{
if (a[i] != b[i])
{
// When frequency are not same
return 0;
}
}
return 1;
}
public void isPowerof2(int num)
{
int result = 0;
System.out.print("\n Given num : " + num);
if (num > 0)
{
// Check all power of 2 in 32 bit integer
for (int i = 0; i < 31 && result == 0; ++i)
{
if (num == (1 << i) || isSameDigit(num, 1 << i) == 1)
{
// Get resultant power
result = (1 << i);
}
}
}
if (result != 0)
{
System.out.print("\n Permutation " + result + " is power of 2\n");
}
else
{
System.out.print("\n No permutation of number " + num + " is power of 2\n");
}
}
public static void main(String[] args)
{
// Test cases
}
}``````

#### input

`````` Given num : 76328
Permutation 32768 is power of 2

Given num : 1234
No permutation of number 1234 is power of 2

Given num : 8240
Permutation 2048 is power of 2

Given num : 23
Permutation 32 is power of 2

Given num : 21
No permutation of number 21 is power of 2``````
``````// Include header file
#include <iostream>
using namespace std;
// C++ program for
// Check if permutation of number is power of 2 or not

class PermutationPower
{
public:
// Check the both number have frequency is same or not
int isSameDigit(int num, int power)
{
// Use to count number digit frequency
// Digit [0 - 9]
int a;
int b;
// Loop controlling variable
int i = 0;
// Set the initial frequency
for (i = 0; i < 10; ++i)
{
a[i] = 0;
b[i] = 0;
}
// Count digit frequency of num
while (num > 0)
{
a[num % 10] += 1;
// Remove last digit
num = num / 10;
}
// Count digit frequency of power value
while (power > 0)
{
b[power % 10]++;
// Remove last digit
power = power / 10;
}
// Compare frequency of both number
for (i = 0; i < 10; ++i)
{
if (a[i] != b[i])
{
// When frequency are not same
return 0;
}
}
return 1;
}
void isPowerof2(int num)
{
int result = 0;
cout << "\n Given num : " << num;
if (num > 0)
{
// Check all power of 2 in 32 bit integer
for (int i = 0; i < 31 && result == 0; ++i)
{
if (num == (1 << i) || this->isSameDigit(num, 1 << i) == 1)
{
// Get resultant power
result = (1 << i);
}
}
}
if (result != 0)
{
cout << "\n Permutation " << result << " is power of 2\n";
}
else
{
cout << "\n No permutation of number " << num << " is power of 2\n";
}
}
};
int main()
{
// Test cases
return 0;
}``````

#### input

`````` Given num : 76328
Permutation 32768 is power of 2

Given num : 1234
No permutation of number 1234 is power of 2

Given num : 8240
Permutation 2048 is power of 2

Given num : 23
Permutation 32 is power of 2

Given num : 21
No permutation of number 21 is power of 2``````
``````// Include namespace system
using System;
// Csharp program for
// Check if permutation of number is power of 2 or not
public class PermutationPower
{
// Check the both number have frequency is same or not
public int isSameDigit(int num, int power)
{
// Use to count number digit frequency
// Digit [0 - 9]
int[] a = new int;
int[] b = new int;
// Loop controlling variable
int i = 0;
// Set the initial frequency
for (i = 0; i < 10; ++i)
{
a[i] = 0;
b[i] = 0;
}
// Count digit frequency of num
while (num > 0)
{
a[num % 10] += 1;
// Remove last digit
num = num / 10;
}
// Count digit frequency of power value
while (power > 0)
{
b[power % 10]++;
// Remove last digit
power = power / 10;
}
// Compare frequency of both number
for (i = 0; i < 10; ++i)
{
if (a[i] != b[i])
{
// When frequency are not same
return 0;
}
}
return 1;
}
public void isPowerof2(int num)
{
int result = 0;
Console.Write("\n Given num : " + num);
if (num > 0)
{
// Check all power of 2 in 32 bit integer
for (int i = 0; i < 31 && result == 0; ++i)
{
if (num == (1 << i) || this.isSameDigit(num, 1 << i) == 1)
{
// Get resultant power
result = (1 << i);
}
}
}
if (result != 0)
{
Console.Write("\n Permutation " + result + " is power of 2\n");
}
else
{
Console.Write("\n No permutation of number " + num + " is power of 2\n");
}
}
public static void Main(String[] args)
{
// Test cases
}
}``````

#### input

`````` Given num : 76328
Permutation 32768 is power of 2

Given num : 1234
No permutation of number 1234 is power of 2

Given num : 8240
Permutation 2048 is power of 2

Given num : 23
Permutation 32 is power of 2

Given num : 21
No permutation of number 21 is power of 2``````
``````<?php
// Php program for
// Check if permutation of number is power of 2 or not
class PermutationPower
{
// Check the both number have frequency is same or not
public	function isSameDigit(\$num, \$power)
{
// Use to count number digit frequency
// Digit [0 - 9]
// Set the initial frequency
\$a = array_fill(0, 10, 0);
\$b = array_fill(0, 10, 0);
// Loop controlling variable
\$i = 0;
// Count digit frequency of num
while (\$num > 0)
{
\$a[\$num % 10] += 1;
// Remove last digit
\$num = (int)(\$num / 10);
}
// Count digit frequency of power value
while (\$power > 0)
{
\$b[\$power % 10]++;
// Remove last digit
\$power = (int)(\$power / 10);
}
// Compare frequency of both number
for (\$i = 0; \$i < 10; ++\$i)
{
if (\$a[\$i] != \$b[\$i])
{
// When frequency are not same
return 0;
}
}
return 1;
}
public	function isPowerof2(\$num)
{
\$result = 0;
echo("\n Given num : ".\$num);
if (\$num > 0)
{
// Check all power of 2 in 32 bit integer
for (\$i = 0; \$i < 31 && \$result == 0; ++\$i)
{
if (\$num == (1 << \$i) || \$this->isSameDigit(\$num, 1 << \$i) == 1)
{
// Get resultant power
\$result = (1 << \$i);
}
}
}
if (\$result != 0)
{
echo("\n Permutation ".\$result.
" is power of 2\n");
}
else
{
echo("\n No permutation of number ".\$num.
" is power of 2\n");
}
}
}

function main()
{
// Test cases
}
main();``````

#### input

`````` Given num : 76328
Permutation 32768 is power of 2

Given num : 1234
No permutation of number 1234 is power of 2

Given num : 8240
Permutation 2048 is power of 2

Given num : 23
Permutation 32 is power of 2

Given num : 21
No permutation of number 21 is power of 2``````
``````// Node JS program for
// Check if permutation of number is power of 2 or not
class PermutationPower
{
// Check the both number have frequency is same or not
isSameDigit(num, power)
{
// Use to count number digit frequency
// Digit [0 - 9]
// Set the initial frequency
var a = Array(10).fill(0);
var b = Array(10).fill(0);
// Loop controlling variable
var i = 0;
// Count digit frequency of num
while (num > 0)
{
a[num % 10] += 1;
// Remove last digit
num = parseInt(num / 10);
}
// Count digit frequency of power value
while (power > 0)
{
b[power % 10]++;
// Remove last digit
power = parseInt(power / 10);
}
// Compare frequency of both number
for (i = 0; i < 10; ++i)
{
if (a[i] != b[i])
{
// When frequency are not same
return 0;
}
}
return 1;
}
isPowerof2(num)
{
var result = 0;
process.stdout.write("\n Given num : " + num);
if (num > 0)
{
// Check all power of 2 in 32 bit integer
for (var i = 0; i < 31 && result == 0; ++i)
{
if (num == (1 << i) || this.isSameDigit(num, 1 << i) == 1)
{
// Get resultant power
result = (1 << i);
}
}
}
if (result != 0)
{
process.stdout.write("\n Permutation " + result + " is power of 2\n");
}
else
{
process.stdout.write("\n No permutation of number " + num + " is power of 2\n");
}
}
}

function main()
{
// Test cases
}
main();``````

#### input

`````` Given num : 76328
Permutation 32768 is power of 2

Given num : 1234
No permutation of number 1234 is power of 2

Given num : 8240
Permutation 2048 is power of 2

Given num : 23
Permutation 32 is power of 2

Given num : 21
No permutation of number 21 is power of 2``````
``````#  Python 3 program for
#  Check if permutation of number is power of 2 or not
class PermutationPower :
#  Check the both number have frequency is same or not
def isSameDigit(self, num, power) :
#  Use to count number digit frequency
#  Digit [0 - 9]
#  Set the initial frequency
a =  * (10)
b =  * (10)
#  Loop controlling variable
i = 0
#  Count digit frequency of num
while (num > 0) :
a[num % 10] += 1
#  Remove last digit
num = int(num / 10)

#  Count digit frequency of power value
while (power > 0) :
b[power % 10] += 1
#  Remove last digit
power = int(power / 10)

#  Compare frequency of both number
i = 0
while (i < 10) :
if (a[i] != b[i]) :
#  When frequency are not same
return 0

i += 1

return 1

def isPowerof2(self, num) :
result = 0
print("\n Given num : ", num, end = "")
if (num > 0) :
#  Check all power of 2 in 32 bit integer
i = 0
while (i < 31 and result == 0) :
if (num == (1 << i) or self.isSameDigit(num, 1 << i) == 1) :
#  Get resultant power
result = (1 << i)

i += 1

if (result != 0) :
print("\n Permutation", result ,"is power of 2")
else :
print("\n No permutation of number", num ,"is power of 2")

def main() :
#  Test cases

if __name__ == "__main__": main()``````

#### input

`````` Given num :  76328
Permutation 32768 is power of 2

Given num :  1234
No permutation of number 1234 is power of 2

Given num :  8240
Permutation 2048 is power of 2

Given num :  23
Permutation 32 is power of 2

Given num :  21
No permutation of number 21 is power of 2``````
``````#  Ruby program for
#  Check if permutation of number is power of 2 or not
class PermutationPower
#  Check the both number have frequency is same or not
def isSameDigit(num, power)
#  Use to count number digit frequency
#  Digit [0 - 9]
#  Set the initial frequency
a = Array.new(10) {0}
b = Array.new(10) {0}
#  Loop controlling variable
i = 0
#  Count digit frequency of num
while (num > 0)
a[num % 10] += 1
#  Remove last digit
num = num / 10
end

#  Count digit frequency of power value
while (power > 0)
b[power % 10] += 1
#  Remove last digit
power = power / 10
end

#  Compare frequency of both number
i = 0
while (i < 10)
if (a[i] != b[i])
#  When frequency are not same
return 0
end

i += 1
end

return 1
end

def isPowerof2(num)
result = 0
print("\n Given num : ", num)
if (num > 0)
#  Check all power of 2 in 32 bit integer
i = 0
while (i < 31 && result == 0)
if (num == (1 << i) || self.isSameDigit(num, 1 << i) == 1)
#  Get resultant power
result = (1 << i)
end

i += 1
end

end

if (result != 0)
print("\n Permutation ", result ," is power of 2\n")
else
print("\n No permutation of number ", num ," is power of 2\n")
end

end

end

def main()
#  Test cases
end

main()``````

#### input

`````` Given num : 76328
Permutation 32768 is power of 2

Given num : 1234
No permutation of number 1234 is power of 2

Given num : 8240
Permutation 2048 is power of 2

Given num : 23
Permutation 32 is power of 2

Given num : 21
No permutation of number 21 is power of 2
``````
``````// Scala program for
// Check if permutation of number is power of 2 or not
class PermutationPower()
{
// Check the both number have frequency is same or not
def isSameDigit(n: Int, p: Int): Int = {
var num = n;
var power = p;
// Use to count number digit frequency
// Digit [0 - 9]
// Set the initial frequency
var a: Array[Int] = Array.fill[Int](10)(0);
var b: Array[Int] = Array.fill[Int](10)(0);
// Loop controlling variable
var i: Int = 0;
// Count digit frequency of num
while (num > 0)
{
a(num % 10) += 1;
// Remove last digit
num = num / 10;
}
// Count digit frequency of power value
while (power > 0)
{
b(power % 10) += 1;
// Remove last digit
power = power / 10;
}
// Compare frequency of both number
while (i < 10)
{
if (a(i) != b(i))
{
// When frequency are not same
return 0;
}
i += 1;
}
return 1;
}
def isPowerof2(num: Int): Unit = {
var result: Int = 0;
print("\n Given num : " + num);
if (num > 0)
{
// Check all power of 2 in 32 bit integer
var i: Int = 0;
while (i < 31 && result == 0)
{
if (num == (1 << i) || isSameDigit(num, 1 << i) == 1)
{
// Get resultant power
result = (1 << i);
}
i += 1;
}
}
if (result != 0)
{
print("\n Permutation " + result + " is power of 2\n");
}
else
{
print("\n No permutation of number " + num + " is power of 2\n");
}
}
}
object Main
{
def main(args: Array[String]): Unit = {
var task: PermutationPower = new PermutationPower();
// Test cases
}
}``````

#### input

`````` Given num : 76328
Permutation 32768 is power of 2

Given num : 1234
No permutation of number 1234 is power of 2

Given num : 8240
Permutation 2048 is power of 2

Given num : 23
Permutation 32 is power of 2

Given num : 21
No permutation of number 21 is power of 2``````
``````// Swift 4 program for
// Check if permutation of number is power of 2 or not
class PermutationPower
{
// Check the both number have frequency is same or not
func isSameDigit(_ n: Int, _ p: Int) -> Int
{
var num = n;
var power = p;
// Use to count number digit frequency
// Digit [0 - 9]
// Set the initial frequency
var a: [Int] = Array(repeating: 0, count: 10);
var b: [Int] = Array(repeating: 0, count: 10);
// Loop controlling variable
var i: Int = 0;
// Count digit frequency of num
while (num > 0)
{
a[num % 10] += 1;
// Remove last digit
num = num / 10;
}
// Count digit frequency of power value
while (power > 0)
{
b[power % 10] += 1;
// Remove last digit
power = power / 10;
}
// Compare frequency of both number
i = 0;
while (i < 10)
{
if (a[i] != b[i])
{
// When frequency are not same
return 0;
}
i += 1;
}
return 1;
}
func isPowerof2(_ num: Int)
{
var result: Int = 0;
print("\n Given num : ", num, terminator: "");
if (num > 0)
{
// Check all power of 2 in 32 bit integer
var i: Int = 0;
while (i < 31 && result == 0)
{
if (num == (1 << i) || self.isSameDigit(num, 1 << i) == 1)
{
// Get resultant power
result = (1 << i);
}
i += 1;
}
}
if (result != 0)
{
print("\n Permutation ", result ," is power of 2");
}
else
{
print("\n No permutation of number ", num ," is power of 2");
}
}
}
func main()
{
// Test cases
}
main();``````

#### input

`````` Given num :  76328
Permutation  32768  is power of 2

Given num :  1234
No permutation of number  1234  is power of 2

Given num :  8240
Permutation  2048  is power of 2

Given num :  23
Permutation  32  is power of 2

Given num :  21
No permutation of number  21  is power of 2``````

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

### New Comment 