divmod() in Python and its application

The divmod() method in python takes two numbers and returns a pair of numbers consisting of their quotient and remainder.
Syntax :

divmod(x, y)
x and y : x is numerator and y is denominator
x and y must be non complex

Examples:

Input : x = 9, y = 3
Output :(3, 0)

Input : x = 8, y = 3
Output :(2, 2)

Explanation : The divmod() method takes two parameters x and y, where x is treated as numerator and y is treated as denominator. The method calculates both x / y and x % y and returns both the values.

  • If x and y are integers, the return value is
    (x / y, x % y)

    .

  • If x or y is a float, the result is
    (q, x % y), where q is the whole part of the quotient.
filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to illustrate divmod()
# divmod() with int
print('(5, 4) = ', divmod(5, 4))
print('(10, 16) = ', divmod(10, 16))
print('(11, 11) = ', divmod(11, 11))
print('(15, 13) = ', divmod(15, 13))
  
# divmod() with int and Floats
print('(6.0, 5) = ', divmod(8.0, 3))
print('(3, 9.0) = ', divmod(3, 8.0))
print('(13.5, 6.2) = ', divmod(7.5, 2.5))
print('(1.6, 10.7) = ', divmod(2.6, 0.5))

chevron_right


Output:

(5, 4) =  (1, 1)
(10, 16) =  (0, 10)
(11, 11) =  (1, 0)
(15, 13) =  (1, 2)
(6.0, 5) =  (2.0, 2.0)
(3, 9.0) =  (0.0, 3.0)
(13.5, 6.2) =  (3.0, 0.0)
(1.6, 10.7) =  (5.0, 0.10000000000000009)

Errors And Exceptions

  1. If either of the arguments, say x and y, is a float, the result is (q, x%y). Here, q is the whole part of the quotient.
  2. If the second argument is 0, it returns Zero Division Error
  3. If the first argument is 0, it returns (0, 0)

Practical Application : Check if a number is prime or not using divmod() function.
Examples:

Input : n = 7
Output :Prime

Input : n = 15
Output :Not Prime

Algorithm

  1. Initialise a new variable, say x with the given integer and a variable counter to 0
  2. Run a loop till the given integer becomes 0 and keep decrementing it.
  3. Save the value returned by divmod(n, x) in two variables, say p and q
  4. Check if q is 0, this will imply that n is perfectly divisible by x, and hence increment the counter value
  5. Check if the counter value is greater than 2, if yes, the number is not prime, else it is prime
filter_none

edit
close

play_arrow

link
brightness_4
code

# Python code to find if a number is
# prime or not using divmod()
  
# Given integer
n = 15
x = n
  
# Initialising counter to 0
count = 0
while x != 0:
    p, q = divmod(n, x)
    x-= 1
    if q == 0:
        count+= 1
if count>2:
    print('Not Prime')
else:
    print('Prime')

chevron_right


Output:

Not Prime

More Applications:

filter_none

edit
close

play_arrow

link
brightness_4
code

# Sum of digits of a number using divmod
num = 86
sums = 0
while num!=0:
    use = divmod(num, 10)
    dig = use[1]
    sums = sums + dig
    num = use[0]
print(sums)

chevron_right


Output:

14
filter_none

edit
close

play_arrow

link
brightness_4
code

# reversing a number using divmod
num = 132
pal = 0
while num!=0:
    use = divmod(num, 10)
    dig = use[1]
    pal = pal*10+dig
    num = use[0]
print(pal)

chevron_right


Output:

231

Co-Author : Chinmoy Lenka



My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.