Multiplication with a power of 2

Last Updated : 26 May, 2022

Given two numbers x and n, we need to multiply x with 2n
Examples : 
 

Input  : x = 25, n = 3
Output : 200
25 multiplied by 2 raised to power 3
is 200.

Input : x = 70, n = 2
Output : 280
          


 


A simple solution is to compute n-th power of 2 and then multiply with x. 
 

C++
// Simple C/C++ program 
// to compute x * (2^n)
#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;

// Returns 2 raised to power n
ll power2(ll n)
{
    if (n == 0)
        return 1;
        
    if (n == 1)
        return 2;
        
    return power2(n / 2) *
                    power2(n / 2);
}

ll multiply(ll x, ll n)
{
    return x * power2(n);
}

// Driven program 
int main()
{
    ll x = 70, n = 2;
    cout<<multiply(x, n);
    return 0;
}
Java
// Simple Java program 
// to compute x * (2^n)
import java.util.*;

class GFG {
    
    // Returns 2 raised to power n
    static long power2(long n)
    {
        if (n == 0)
            return 1;
            
        if (n == 1)
            return 2;
            
        return power2(n / 2) 
                          * power2(n / 2);
    }
     
    static long multiply(long x, long n)
    {
        return x * power2(n);
    }
    
    /* Driver program */
    public static void main(String[] args) 
    {
        long x = 70, n = 2;
        
        System.out.println(multiply(x, n));
    }
}
    
// This code is contributed by Arnav Kr. Mandal.    
Python3
# Simple Python program 
# to compute x * (2^n)

# Returns 2 raised to power n
def power2(n):

    if (n == 0):
        return 1
    if (n == 1):
        return 2
    return power2(n / 2) *
                  power2(n / 2);


def multiply(x, n):
    return x * power2(n);


# Driven program 
x = 70
n = 2
print(multiply(x, n))

# This code is contributed by Smitha Dinesh Semwal
C#
// Simple C# program 
// to compute x * (2^n)
using System;

class GFG {
    
    // Returns 2 raised to power n
    static long power2(long n)
    {
        if (n == 0)
            return 1;
            
        if (n == 1)
            return 2;
            
        return power2(n / 2) 
                        * power2(n / 2);
    }
    
    static long multiply(long x, long n)
    {
        return x * power2(n);
    }
    
    /* Driver program */
    public static void Main() 
    {
        long x = 70, n = 2;
        
        Console.WriteLine(multiply(x, n));
    }
}
    
// This code is contributed by Vt_m. 
PHP
<?php
// Simple PHP program 
// to compute x * (2^n)

// Returns 2 raised to power n
function power2($n)
{
    if ($n == 0)
        return 1;
        
    if ($n == 1)
        return 2;
        
    return power2($n / 2) *
           power2($n / 2);
}

function multiply( $x, $n)
{
    return $x * power2($n);
}

// Driver Code 
$x = 70; $n = 2;
echo multiply($x, $n);

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

// Simple JavaScript program
// to compute x * (2^n)

// Returns 2 raised to power n
function power2(n)
{
    if (n == 0)
        return 1;
        
    if (n == 1)
        return 2;
        
    return power2(n / 2) *
        power2(n / 2);
}

function multiply( x, n)
{
    return x * power2(n);
}

// Driver Code
let x = 70
let n = 2;
document.write( multiply(x, n));

// This code is contributed by mohan

</script>

Output : 

280


Time complexity : O(logn)

Auxiliary Space : O(logn)
An efficient solution is to use bitwise leftshift operator. We know 1 << n means 2 raised to power n.
 

C++
// Efficient C/C++ program to compute x * (2^n)
#include <stdio.h>
typedef long long int ll;

ll multiply(ll x, ll n)
{
    return x << n;
}

// Driven program to check above function
int main()
{
    ll x = 70, n = 2;
    printf("%lld", multiply(x, n));
    return 0;
}
Java
// JAVA Code for Multiplication with a 
// power of 2 
import java.util.*;

class GFG {
    
    static long multiply(long x, long n)
    {
        return x << n;
    }
    
    /* Driver program to test above function */
    public static void main(String[] args) 
    {
        long x = 70, n = 2;
        System.out.println(multiply(x, n));
    }
}

//This code is contributed by Arnav Kr. Mandal.
Python3
# Efficient Python3 code to compute x * (2^n)

def multiply( x , n ):
    return x << n
    
# Driven code to check above function
x = 70
n = 2
print( multiply(x, n))

# This code is contributed by "Sharad_Bhardwaj".
C#
// C# Code for Multiplication with a 
// power of 2 
using System;

class GFG {
    
    static int multiply(int x, int n)
    {
        return x << n;
    }
    
    /* Driver program to test above function */
    public static void Main() 
    {
        int x = 70, n = 2;
    
        Console.WriteLine(multiply(x, n));
    }
}

//This code is contributed by vt_m.
PHP
<?php
// Efficient PHP program to compute x * (2^n)

function multiply($x, $n)
{
    return $x << $n;
}

    // Driver Code
    $x = 70; 
    $n = 2;
    echo multiply($x, $n);
    
// This code is contributed by ajit
?>
JavaScript
<script>

// Efficient JavaScript program to compute x * (2^n)

function multiply(x, n)
{
    return x << n;
}

    // Driver Code
    let x = 70; 
    let n = 2;
    document.write(multiply(x, n));

// This code is contributed by mohan

</script>

Output : 

280

Time Complexity : O(1)

Auxiliary Space: O(1)


 

Comment