#WSQ11

“Yo Soy 196”

En esta ocasión voy a hablar sobre el WSQ11, este programa hacemos alusión a los números de Lychrel que tratan en pocas palabras de que un número de Lychrel es un número natural que no puede formar un palíndromo a través del proceso iterativo repetitivo de invertir sus dígitos y sumar los números resultantes, por lo tanto este programa crea una solución para identificar en un rango de números cuales son Lychrel cuales no y cuales son palíndromos naturales, es decir que sin necesidad de sumarlo con su inverso, ya es un palíndromo.

Como primer paso se le pide al usuario el número inferior del rango en el que quiere encontrar números Lychrel, en seguida se le pide el limite superior, una vez conociendo el limite inferior y superior, hice un ciclo que se encarga se usar esos valores y crear una lista con todos los valores de ese rango.

Después de encargarme de la lista para los valores que se van a utilizar, cree una función que se encarga de primero convertir a string uno de los valores de la lista, en seguida lo invierte y después lo vuelve a transformar en entero para poder trabajar con el. ya que podemos trabajar con el numero invertido y con el normal, hice un ciclo for que es la base de todo el programa, en este primero se compara si los números son palindromos naturales usando la función que los invierte, si no lo son, entra a un ciclo anidado que se encarga de al no ser palindromos naturales los empieza a sumar hasta que los convierte a palindromos, gracias a varios contadores se puede saber cuantos numero de este tipo hay.

En seguida en el programa hay un if que se encarga de verificar que las iteraciones de

LYCHREL.png

números no sean mayores a 30 y que si sobrepasan este número, entonces el programa automáticamente declara que ese número es un candidato a número de Lychrel.

cuando el programa se da cuenta que un número sobrepaso los 30 intentos ademas de considerarlo como número Lychrel imprime ese número en la pantalla gracias al uso de listas, abajo del programa solo se hacen las impresiones de los respectivos contadores para mostrar los resultados, ademas del rango con los valores que proporciono el usuario.

Para este programa busque información que se puede checar en los siguientes enlaces:

Numero de Lychrel

Invertir un Número

Cómo mutar listas

Aquí puedes ver mi código.

import os
os.system (“clear”)
print(“Yo soy 196”)
lista=[]
contador2=0
naturales=0
candidato=0
y=1
non=0
regulador=0
inferior=int(input(“Por favor dame el limite inferior de la secuencia: “))
superior=int(input(“Por favor dame el limite superior de la secuencia: “))
print()
contador=inferior

def reverse(num):
return int(str(num)[::-1])

while(contador<=superior):
lista.append(contador)
contador=contador+1

for x in lista:
z=reverse(lista[contador2])
if(x==z):
naturales=naturales+1
  else:
while(x!=z and regulador<30):
x=x+z
z=reverse(x)
regulador=regulador+1
if(regulador<30):
non=non+1
 else:
candidato=candidato+1
print(“Numero lychrel encontado:”,lista[contador2],)
regulador=0
contador2=contador2+1

print(“nLos resultados encontrados son del”,inferior,“al”,superior)
print(“El numero de palindromos naturales es:”,naturales)
print(“El numero de no Lychrels es:”,non)
print(“El numero de candidatos es:”,candidato)

Por aquí está el enlace a GitHub

Aquí puedes ver el programa corriendo.

LYCHREL.png

 

CC BY-SA 4.0 #WSQ11 by carlosdanielmartinezblog is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.