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 nunsigned 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 aboveint 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 nimport 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 ndef 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 aboven = 128print("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 nusing 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 nfunction 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)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!


… [Trackback]
[…] Find More Information here on that Topic: geeksforgeeks.org/smallest-perfect-power-of-2-greater-than-n-without-using-arithmetic-operators/ […]