Open In App

Smallest perfect power of 2 greater than n (without using arithmetic operators)

Last Updated : 15 Jun, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

Given a non-negative integer n. The problem is to find the smallest perfect power of 2 which is greater than n without using the arithmetic operators.
Examples : 
 

Input : n = 10
Output : 16

Input : n = 128
Output : 256


 


Algorithm : 
 


 

C++
// C++ implementation of smallest perfect power
// of 2 greater than n
#include <bits/stdc++.h>

using namespace std;

// Function to find smallest perfect power
// of 2 greater than n
unsigned int perfectPowerOf2(unsigned int n)
{
    // To store perfect power of 2
    unsigned int per_pow = 1;

    while (n > 0) 
    {
        // bitwise left shift by 1
        per_pow = per_pow << 1;

        // bitwise right shift by 1
        n = n >> 1;
    }

    // Required perfect power of 2
    return per_pow;
}

// Driver program to test above
int main()
{
    unsigned int n = 128;
    cout << "Perfect power of 2 greater than "
        << n << ": " << perfectPowerOf2(n);
    return 0;
}
Java
// JAVA Code for Smallest perfect
// power of 2 greater than n
import java.util.*;

class GFG {
    
    // Function to find smallest perfect
    // power of 2 greater than n
    static int perfectPowerOf2( int n)
    {
        // To store perfect power of 2
         int per_pow = 1;
     
        while (n > 0) 
        {
            // bitwise left shift by 1
            per_pow = per_pow << 1;
            
            n = n >> 1;
        }
     
        // Required perfect power of 2
        return per_pow;
    }
    
    // Driver program
    public static void main(String[] args) 
    {
         int n = 12;
         System.out.println("Perfect power of 2 greater than "
                            + n + ": " + perfectPowerOf2(n));
        }
    }
        
    //This code is contributed by Arnav Kr. Mandal.
Python3
# Python3 implementation of smallest 
# perfect power of 2 greater than n

# Function to find smallest perfect 
# power of 2 greater than n
def perfectPowerOf2( n ):
    
    # To store perfect power of 2
    per_pow = 1
    
    while n > 0:
    
        # bitwise left shift by 1
        per_pow = per_pow << 1
        
        # bitwise right shift by 1
        n = n >> 1
        
    # Required perfect power of 2
    return per_pow

# Driver program to test above
n = 128
print("Perfect power of 2 greater than",
            n, ":",perfectPowerOf2(n))

# This code is contributed by "Sharad_Bhardwaj".
C#
// C# Code for Smallest perfect
// power of 2 greater than n
using System;

class GFG {

    // Function to find smallest perfect
    // power of 2 greater than n
    static int perfectPowerOf2(int n)
    {
        // To store perfect power of 2
        int per_pow = 1;

        while (n > 0) 
        {
            // bitwise left shift by 1
            per_pow = per_pow << 1;

            n = n >> 1;
        }

        // Required perfect power of 2
        return per_pow;
    }

    // Driver program
    public static void Main()
    {
        int n = 128;
        Console.WriteLine("Perfect power of 2 greater than " +
                           n + ": " + perfectPowerOf2(n));
    }
}

// This code is contributed by Sam007
PHP
<?php
// php implementation of 
// smallest perfect power
// of 2 greater than n

// Function to find smallest
// perfect power of 2
// greater than n
function perfectPowerOf2($n)
{
    
    // To store perfect power of 2
    $per_pow = 1;

    while ($n > 0) 
    {
        // bitwise left shift by 1
        $per_pow = $per_pow << 1;

        // bitwise right shift by 1
        $n = $n >> 1;
    }

    // Required perfect power of 2
    return $per_pow;
}

    // Driver code
    $n = 128;
    echo "Perfect power of 2 greater than ". 
          $n . ": ".perfectPowerOf2($n);

// This code is contributed by mits 
?>
JavaScript
<script>

// JavaScript implementation of smallest perfect power 
// of 2 greater than n 

// Function to find smallest perfect power 
// of 2 greater than n 
function perfectPowerOf2(n) 
{ 
    // To store perfect power of 2 
    let per_pow = 1; 

    while (n > 0) 
    { 
        // bitwise left shift by 1 
        per_pow = per_pow << 1; 

        // bitwise right shift by 1 
        n = n >> 1; 
    } 

    // Required perfect power of 2 
    return per_pow; 
} 

// Driver program to test above 

    let n = 128; 
    document.write("Perfect power of 2 greater than "
        + n + ": " + perfectPowerOf2(n)); 


// This code is contributed by Surbhi Tyagi.

</script>

Output: 

Perfect power of 2 greater than 128: 256


Time Complexity: O(logn)
Auxiliary Space: O(1)


Article Tags :
Practice Tags :

Similar Reads