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:

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.

Python

# 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

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.
?>


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.



My Personal Notes arrow_drop_up

Improved By : vt_m



Article Tags :
Practice Tags :


Be the First to upvote.


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