Thursday, October 2, 2025
HomeData Modelling & AIC++ program to divide a number by 3 without using *, /...

C++ program to divide a number by 3 without using *, / , +, -, % operators

For a given positive number we need to divide a number by 3 without using any of these *, /, +, – % operators
Examples: 
 

Input : 48 
Output : 16

Input : 16  
Output : 5 

 

Algorithm 
 

  1. Take a number num, sum = 0
  2. while(num>3), shift the number left by 2 bits and sum = add(num >> 2, sum). Create a function add(x, y) for adding two number by bitwise operator 
    • Take x, y
    • run a do while loop till a is not zero
    • a = x & y, b = x ^ y;, y = b;
    • after terminating loop return value of b which gives sum of x and y
  3. Take bitwise AND of num with 3 
    for new num = add( num >> 2, num & 3)
  4. After terminating while loop print the value of sum which give final result .

 

For example if your number is 10 then convert to binary 10 => 00001010 
If 10 > 3 then shift the binary number 2 bits, Now num will be 00000010 i.e, 2 
Now sum will be 2 
num = (shift the number by 2 bits) + (number BITWISE AND 3) 
num = 2+2 
Now the number will be 4 then, 4 > 3 => true so loop will be repeated 
4 => 00000100 then shift the binary number 2 bits 
Now sum = 2 + 1 ie, sum = 3 (this value is returned) 
num = (shift the number(00000100) by 2 bits) + (number BITWISE AND 3) 
num = 1 + 0 
ie remainder = 1 
 

 

CPP




// C++ program for divided a number by
// 3 without using operator
#include <bits/stdc++.h>
using namespace std;
 
// A function to add 2 numbers without using +
int add(int x, int y)
{
    int a, b;
    do {
        a = x & y;
        b = x ^ y;
        x = a << 1;
        y = b;
    } while (a);
 
    return b;
}
 
// Function to divide by 3
int divideby3(int num)
{
    int sum = 0;
 
    while (num > 3) {
        sum = add(num >> 2, sum);
        num = add(num >> 2, num & 3);
    }
 
    if (num == 3)
        sum = add(sum, 1);
 
    return sum;
}
 
// Driver program
int main(void)
{
    int num = 48;
    cout << "The number divided by 3 is ";
    cout << divideby3(num);
 
    return 0;
}


Output: 

The number divided by 3 is 16

 

This article is contributed by DANISH_RAZA. If you like neveropen and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the neveropen main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
 

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

RELATED ARTICLES

Most Popular

Dominic
32330 POSTS0 COMMENTS
Milvus
85 POSTS0 COMMENTS
Nango Kala
6703 POSTS0 COMMENTS
Nicole Veronica
11867 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11926 POSTS0 COMMENTS
Shaida Kate Naidoo
6817 POSTS0 COMMENTS
Ted Musemwa
7078 POSTS0 COMMENTS
Thapelo Manthata
6775 POSTS0 COMMENTS
Umr Jansen
6774 POSTS0 COMMENTS