Check given number is power of 2

Write a program to check given number is the power of 2

Example 1:

Input: num=4
Output: Power of 2

 Example 2:

Input: num=5
Output: Not power of 2

Approach:

Java

public class NumberPower2 {
    public static void main(String[] args) {
        int num = 64;
        if (isPowerOfTwo(num)) {
            System.out.println("Power of 2");
        } else {
            System.out.println("Not Power of 2");
        }
    }

    private static boolean isPowerOfTwo(int num) {
        // base case
        if (num == 0)
            return false;
        while (num != 1) {
            // if number is not divisible by 2
            if (num % 2 != 0) {
                return false;
            }
            num /= 2;
        }
        return true;
    }
}

C++

#include <bits/stdc++.h>
using namespace std;


//function to check for
//power of 2
bool isPowerOfTwo(int n
{
    //base case
    if(n==0)
        return false;
   //itearte till n is not 1 or n 
   
   while(n!=1)
        {

            //if number is odd then not
            //power of 2 return false
            if(n&1)
                  return false;
          
          //else divide by 2
            n=n/2;
        }

     //return true
        return true;
}
int main()
{
    int num=4;

    if(isPowerOfTwo(num))
       cout<<"Power of 2\n";
    else
      cout<<"Not power of 2\n";
    return 0;
}
//Time Complexity: O(log(n))


No comments:

Post a Comment