VOOZH about

URL: https://www.geeksforgeeks.org/dsa/calculate-7n8-without-using-division-and-multiplication-operators/

⇱ Calculate 7n/8 without using division and multiplication operators - GeeksforGeeks


  • Courses
  • Tutorials
  • Interview Prep

Calculate 7n/8 without using division and multiplication operators

Last Updated : 23 Jul, 2025

Given an integer, write a function that calculates ?7n/8? (ceiling of 7n/8) without using division and multiplication operators.
We strongly recommend to minimize your browser and try this yourself first.

Method 1:
The idea is to first calculate floor of n/8, i.e., ?n/8? using right shift bitwise operator. The expression n>>3 produces the same. 
If we subtract ?n/8? from n, we get ?7n/8?

Below is the implementation of above idea :  

Output :

8

Time Complexity: O(1)

Auxiliary Space: O(1)


Method 2 (Always matches with 7*n/8):
The above method doesn't always produce result same as "printf("%u", 7*n/8)". For example, the value of expression 7*n/8 is 13 for n = 15, but above program produces 14. Below is modified version that always matches 7*n/8. The idea is to first multiply the number with 7, then divide by 8 as it happens in expression 7*n/8. 

Output :

13

Time Complexity: O(1)

Auxiliary Space: O(1)


Note : There is difference between outcomes of two methods. The method 1 produces ceil(7n/8), but method two produces integer value of 7n/8. For example, for n = 15, outcome of first method is 14, but for second method is 13.

Thanks to Narendra Kangralkar for suggesting this method.

Approach:

  • Multiply the number n by 7 using the following steps.
  • Left shift n by 3 positions (multiply n by 8).
  • Subtract n from the result obtained in the previous step.
  • To calculate the ceiling of 7n/8, add 7 to the result obtained in step 1.
  • Right shift the result obtained in step 2 by 3 positions to divide it by 8.

Below is the implementation of this approach:

Output:

8

Time Complexity: O(1), as it only involves a few bitwise operations regardless of the input value n. 
Space Complexity: O(1) since it does not require any additional space that grows with the input size.

This article is contributed by Rajeev.

Comment
Article Tags:
Article Tags: