Um número de Kaprekar modificado é um número inteiro positivo com uma propriedade especial. Se você elevá-lo ao quadrado, depois dividir o número em dois inteiros e somar esses inteiros, obterá o mesmo valor inicial.
Considere um número inteiro positivo n com d dígitos. Elevamos n ao quadrado para obter um número que tem 2 * d dígitos ou (2 * d) - 1 dígitos. Divida a representação textual do quadrado em duas partes, l e r. A parte direita, r, deve ter d dígitos. A esquerda é a substring restante. Converta essas duas substrings novamente em inteiros, some-as e verifique se o resultado é n.
Por exemplo, se n=5, d=1, então o quadrado de n = 25 . Dividimos isso em duas strings e as convertemos novamente nos inteiros 2 e 5. Testamos 2 + 5 = 7, que não é 5, portanto este não é um número de Kaprekar modificado. Se n=9, d=1 e o quadrado de n = 81, isso nos dá 1+8=9, o n original.
Observe que r pode ter zeros à esquerda.
Conclua o método kaprekar_numbers(). Ele deve retornar a lista de números de Kaprekar modificados em ordem crescente. kaprekar_numbers() tem os seguintes parâmetros:
p: um inteiro que representa o limite inferior do intervalo.q: um inteiro que representa o limite superior do intervalo.kaprekar_numbers(1, 10) ➞ "1 9"
kaprekar_numbers(100, 300) ➞ "297"
kaprekar_numbers(1, 100) ➞ "1 9 45 55 99""INVALID RANGE".