Open In App

Multiplication with a power of 2

Last Updated : 26 May, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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)

 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads