Efficient way to multiply with 7

We can multiply a number by 7 using bitwise operator. First left shift the number by 3 bits (you will get 8n) then subtract the original numberfrom the shifted number and return the difference (8n – n).


Program:

CPP

filter_none

edit
close

play_arrow

link
brightness_4
code

# include<bits/stdc++.h> 
  
using namespace std;
 //c++ implementation  
long multiplyBySeven(long n) 
{   
    /* Note the inner bracket here. This is needed  
       because precedence of '-' operator is higher  
       than '<<' */
    return ((n<<3) - n); 
    
/* Driver program to test above function */
int main() 
    long n = 4; 
      
    cout<<multiplyBySeven(n); 
    
    return 0; 
}

chevron_right


C

filter_none

edit
close

play_arrow

link
brightness_4
code

# include<stdio.h>
  
int multiplyBySeven(unsigned int n)
{  
    /* Note the inner bracket here. This is needed 
       because precedence of '-' operator is higher 
       than '<<' */
    return ((n<<3) - n);
}
  
/* Driver program to test above function */
int main()
{
    unsigned int n = 4;
    printf("%u", multiplyBySeven(n));
  
    getchar();
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to multiply any 
// positive number to 7 
  
class GFG {
      
    static int multiplyBySeven(int n)
    
        /* Note the inner bracket here. 
        This is needed because precedence
        of '-' operator is higher 
        than '<<' */
        return ((n << 3) - n);
    }
      
    // Driver code
    public static void main (String arg[]) 
    {
        int n = 4;
          
        System.out.println(multiplyBySeven(n));
    }
}
  
// This code is contributed by Anant Agarwal.

chevron_right


Python

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to multiply any 
# positive number to 7 
  
# Function to mutiply any number with 7 
def multiplyBySeven(n):
  
    # Note the inner bracket here. 
    # This is needed because 
    # precedence of '-' operator is 
    # higher than '<<' 
    return ((n << 3) - n)
  
# Driver code 
n = 4
print(multiplyBySeven(n))
  
# This code is contributed by Danish Raza

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to multiply any 
// positive number to 7 
using System;
  
class GFG
{
    static int multiplyBySeven(int n)
    
        /* Note the inner bracket here. This is needed 
        because precedence of '-' operator is higher 
        than '<<' */
        return ((n << 3) - n);
    }
      
    // Driver code
    public static void Main () 
    {
        int n = 4;
        Console.Write(multiplyBySeven(n));
    }
}
  
// This code is contributed by Sam007

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
  
  
function multiplyBySeven($n)
  
    // Note the inner bracket here.
    // This is needed because 
    // precedence of '-' operator  
    // is higherthan '<<' 
    return (($n<<3) - $n);
}
  
    // Driver Code
    $n = 4;
    echo multiplyBySeven($n);
  
// This code is contributed by vt_m.
?>

chevron_right



Output:

28

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

Note: Works only for positive integers.
Same concept can be used for fast multiplication by 9 or other numbers.

Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.




My Personal Notes arrow_drop_up

Improved By : vt_m, mohit kumar 29

Article Tags :
Practice Tags :


3


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.