Efficient way to multiply with 7
Given a number n, find the result alfter multiplying it with 7.
Example:
Input: n=8
Output: 56
Naive Approach: The basic way to solve this is to use a multiplication operator, or add the number 7 times, or use recursive function.
Efficient Approach: 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 number from the shifted number
- Return the difference (8n – n).
Program:
CPP
# 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; } |
C
# 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; } |
Java
// 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. |
Python3
# Python program to multiply any # positive number to 7 # Function to multiply 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 |
C#
// 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 |
PHP
<?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. ?> |
Javascript
<script> function multiplyBySeven(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 n = 4; document.write(multiplyBySeven(n)); // This code is contributed by simranarora5sos </script> |
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.