python

Cómo saber si un número es narcisista en Python

Introducción

Hoy veremos cómo implementar un algoritmo para saber si un entero es narcisista usando el lenguaje de programación Python.

Número narcisista en Python

Si no sabes cómo funciona este algoritmo o qué cosa es un número narcisista, te recomiendo leer esto.

Por cierto, recuerda que debes tener instalado el intérprete de Python. Si no sabes cómo, mira cómo instalar Python 3 y ponerlo en la PATH.

Función para comprobar si un número es narcisista

Definimos la siguiente función aquí y más abajo la explico:

def es_narcisista(numero):
    numero_como_cadena = str(numero)
    longitud_de_numero = len(numero_como_cadena)
    suma = 0
    for letra in numero_como_cadena:
        # Convertir carácter a entero
        cifra_actual = int(letra)

        # Elevar ese carácter a la potencia dada por la longitud del número
        elevado = pow(cifra_actual, longitud_de_numero)

        # El resultado lo añadimos a suma
        suma = suma + elevado
    # Comprobar si la suma al elevar es igual al número que recibimos
    if numero == suma:
        return True
    else:
        return False

Aunque Python es de tipado fuerte, nos permite convertir variables de manera fácil. Para ello usamos int y str. Más tarde para elevar un número usamos pow.

Así de fácil es hacer esa función. Veamos cómo podemos implementarla

Implementación de la función

La función mencionada anteriormente recibe un entero y regresará True o False. Aquí un ejemplo de cómo podemos invocarla:

"""
    Determinar si un número es narcisista usando Python
    parzibyte.me/blog
"""
def es_narcisista(numero):
    numero_como_cadena = str(numero)
    longitud_de_numero = len(numero_como_cadena)
    suma = 0
    for letra in numero_como_cadena:
        # Convertir carácter a entero
        cifra_actual = int(letra)

        # Elevar ese carácter a la potencia dada por la longitud del número
        elevado = pow(cifra_actual, longitud_de_numero)

        # El resultado lo añadimos a suma
        suma = suma + elevado
    # Comprobar si la suma al elevar es igual al número que recibimos
    if numero == suma:
        return True
    else:
        return False


# Hora de probar
numeros = [1, 2, 3, 4, 153, 28, 11, 96, 407, 1634, 54748]
for numero in numeros:
    print("¿{} es narcisista? {}".format(numero, es_narcisista(numero)))

Lo que hacemos es probar un arreglo de enteros y llamar a la función por cada uno de ellos.

En mi caso la salida se ve así:

Narcisista en Python

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

5 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.