divmod() en Python y su aplicación

El método divmod() en python toma dos números y devuelve un par de números que consisten en su cociente y resto. 

Sintaxis: 

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

Ejemplos:  

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

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

Explicación: el método divmod() toma dos parámetros x e y, donde x se trata como numerador e y como denominador. El método calcula tanto x // y como x % y y devuelve ambos valores. 

  • Si x e y son números enteros, el valor devuelto es
(x // y, x % y)
  • Si x o y es un flotante, el resultado es
(q, x % y), where q is the whole part of the quotient.

Python3

# 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('(8.0, 3) = ', divmod(8.0, 3))
print('(3, 8.0) = ', divmod(3, 8.0))
print('(7.5, 2.5) = ', divmod(7.5, 2.5))
print('(2.6, 10.7) = ', divmod(2.6, 0.5))

Producción: 

(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)

Errores y excepciones 

  1. Si cualquiera de los argumentos (por ejemplo, x e y) es flotante, el resultado es (q, x% y). Aquí, q es la parte entera del cociente.
  2. Si el segundo argumento es 0, devuelve Error de división cero
  3. Si el primer argumento es 0, devuelve (0, 0)

Aplicación práctica: comprueba si un número es primo o no usando la función divmod().  

Ejemplos: 

Input : n = 7
Output :Prime

Input : n = 15
Output :Not Prime

Algoritmo 

  1. Inicialice una nueva variable, digamos x con el entero dado y un contador de variable a 0
  2. Ejecute un ciclo hasta que el entero dado se convierta en 0 y siga decrementándolo.
  3. Guarde el valor devuelto por divmod (n, x) en dos variables, digamos p y q
  4. Compruebe si q es 0, esto implicará que n es perfectamente divisible por x y, por lo tanto, incrementará el valor del contador
  5. Compruebe si el valor del contador es mayor que 2, si es así, el número no es primo, de lo contrario es primo

PYTHON3

# 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')

Producción: 

Not Prime

Más aplicaciones: 

Ejemplo 1: 

Python3

# 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)

Producción: 

14

Ejemplo 2:

Python3

# 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)

Producción: 

231 

Publicación traducida automáticamente

Artículo escrito por AyushSaxena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *