Divide Two integers Leetcode python

LeetCode has a Medium coding Problem in Its’ Algorithm Section “Divide Two integers Leetcode python”. Today We are going to solve this problem. LeetCode Link of the Problem is HERE

Divide Two integers Leetcode python


Given two integers dividend and divisor, divide two integers without using multiplication, division, and mod operator.

The integer division should truncate toward zero, which means losing its fractional part. For example, 8.345 would be truncated to 8, and -2.7335 would be truncated to -2.

Return the quotient after dividing dividend by divisor.

Note: Assume we are dealing with an environment that could only store integers within the 32-bit signed integer range: [−231, 231 − 1]. For this problem, if the quotient is strictly greater than 231 - 1, then return 231 - 1, and if the quotient is strictly less than -231, then return -231.


Input: dividend = 10, divisor = 3
Output: 3
Explanation: 10/3 = 3.33333.. which is truncated to 3.

Input: dividend = 7, divisor = -3
Output: -2
Explanation: 7/-3 = -2.33333.. which is truncated to -2.


  • -231 <= dividend, divisor <= 231 - 1
  • divisor != 0

Solution to Divide Two integers Leetcode python

Firstly, check for the constraints. Since we are dealing with 32 bit signed integer. The Dividend must not be greater than 2**31 and must not be less than -2**31.

Secondly, Check for quotient if the dividend and divisor both are positive or both are negative the quotient must also be positive.

Create a loop that will run for the condition dividend >= divisor. Create some variables. temp and i add the according to the division condition.

Complete Solution

class Solution(object):
    def divide(self, dividend, divisor):
        :type dividend: int
        :type divisor: int
        :rtype: int
        if dividend>2**31:
            return 6184773855
        if dividend<-2**31:
            return -6184773855
        positive = (dividend < 0) == (divisor < 0)
        dividend, divisor = abs(dividend), abs(divisor)
        res = 0
        while dividend >= divisor:
            temp, i = divisor, 1
            while dividend >= temp:
                dividend -= temp
                res += i
                i *= 2
                temp *= 2
        if not positive:
            res = -res
        return min(max(-2**31-1, res), 2**31-1)


Python-related posts Visit HERE

C++ related posts Visit HERE

Databases related posts Visit HERE

Data Structures related posts visit HERE

Algorithms related posts visit HERE

Data Science related posts visit HERE

Share the Knowledge