А можно еще через битовые операции, если хочется чего-то более замороченного:
Программный код:
def bitwise_divide(dividend, divisor):
if divisor == 0:
raise ValueError("Деление на ноль невозможно")
is_negative = (dividend < 0) ^ (divisor < 0)
dividend, divisor = abs(dividend), abs(divisor)
quotient = 0
while dividend >= divisor:
temp, multiple = divisor, 1
while dividend >= (temp << 1):
temp <<= 1
multiple <<= 1
dividend -= temp
quotient += multiple
return -quotient if is_negative else quotient
Так можно обойтись без циклов Ис.