Dividing number without operator can be implemented in two approaches - loop and bit operation

Example 1) divide based in loop

#include <iostream>

int divideWithoutOperator(int dividend, int divisor) {
    // Handle division by zero or cases where the dividend is smaller than the divisor
    if (divisor == 0 || dividend < divisor)
        return 0;

    int quotient = 0;
    while (dividend >= divisor) {
        dividend -= divisor;
        quotient++;
    }

    return quotient;
}

int main() {
    int dividend, divisor;
    std::cout << "Enter dividend: ";
    std::cin >> dividend;
    std::cout << "Enter divisor: ";
    std::cin >> divisor;

    int result = divideWithoutOperator(dividend, divisor);
    std::cout << "Result: " << result << std::endl;

    return 0;
}


Example 2) divide based in bit oeration

#include <iostream>

int divideWithoutOperator(int dividend, int divisor) {
    // Handle division by zero
    if (divisor == 0)
        return INT_MAX; // Return maximum representable integer value

    // Handle division by 1
    if (divisor == 1)
        return dividend;

    // Handle division by -1
    if (divisor == -1) {
        // Check for overflow when dividing INT_MIN by -1
        if (dividend == INT_MIN)
            return INT_MAX;
        return -dividend;
    }

    // Determine the sign of the result
    bool isNegative = (dividend < 0) ^ (divisor < 0);

    // Convert both dividend and divisor to positive values to simplify the calculation
    unsigned int uDividend = abs(dividend);
    unsigned int uDivisor = abs(divisor);

    int quotient = 0;
    while (uDividend >= uDivisor) {
        int shift = 0;
        while (uDividend >= (uDivisor << shift))
            shift++;

        shift--;
        uDividend -= (uDivisor << shift);
        quotient += (1 << shift);
    }

    return isNegative ? -quotient : quotient;
}

int main() {
    int dividend, divisor;
    std::cout << "Enter dividend: ";
    std::cin >> dividend;
    std::cout << "Enter divisor: ";
    std::cin >> divisor;

    int result = divideWithoutOperator(dividend, divisor);
    std::cout << "Result: " << result << std::endl;

    return 0;
}