Un número de Kaprekar modificado es un número entero positivo con una propiedad especial. Si lo elevas al cuadrado, luego divides el número en dos enteros y sumas esos enteros, obtienes el mismo valor inicial.
Considera un número entero positivo n con d dígitos. Elevamos n al cuadrado para obtener un número que tiene 2 * d dígitos o (2 * d) - 1 dígitos. Divide la representación textual del cuadrado en dos partes, l y r. La parte derecha, r, debe tener d dígitos. La izquierda es la subcadena restante. Convierte esas dos subcadenas nuevamente en enteros, súmalos y comprueba si obtienes n.
Por ejemplo, si n=5, d=1, entonces el cuadrado de n = 25 . Dividimos eso en dos cadenas y las convertimos nuevamente en los enteros 2 y 5. Comprobamos 2 + 5 = 7, que no es 5, así que no es un número de Kaprekar modificado. Si n=9, d=1 y el cuadrado de n = 81, obtenemos 1+8=9, el n original.
Ten en cuenta que r puede tener ceros iniciales.
Completa el método kaprekar_numbers(). Debe devolver la lista de números de Kaprekar modificados en orden ascendente. kaprekar_numbers() tiene los siguientes parámetros:
p: un entero que representa el límite inferior del intervalo.q: un entero que representa el límite superior del intervalo.kaprekar_numbers(1, 10) ➞ "1 9"
kaprekar_numbers(100, 300) ➞ "297"
kaprekar_numbers(1, 100) ➞ "1 9 45 55 99""INVALID RANGE".