Dada la entrada de un entero positivo n
, escriba un programa que complete el siguiente proceso.
- Encuentre el número entero positivo más pequeño mayor que
n
ese es un cuadrado perfecto y es la concatenación den
y algún otro número. El orden de los dígitos den
no puede modificarse. Sen
puede llamar al número concatenado para producir un cuadrado perfector_1
. - Si
r_1
no es un cuadrado perfecto, repita el proceso anterior conr_1
como la nueva entrada al proceso. Repita hasta que queder_k
un cuadrado perfecto, denotados
. - Imprime el valor de
sqrt(s)
.
La entrada se puede tomar en cualquier formato. Puede suponer que n
es un número entero positivo. Si alguno r_k
tiene un cero inicial (y r_k
≠ 0), el cero puede ser ignorado.
Casos de prueba
Aquí hay algunos casos de prueba. El proceso demuestra los pasos anteriores.
Input: 23
Process: 23, 2304, 4
Output: 2
Input: 10
Process: 10, 100, 0
Output: 0
Input: 1
Process: 1, 16, 6, 64, 4
Output: 2
Input: 5
Process: 5, 529, 29, 2916, 16
Output: 4
Input: 145
Process: 145, 145161, 161, 16129, 29, 2916, 16
Output: 4
Input: 1337
Process: 1337, 13373649, 3649, 36493681, 3681, 368102596, 2596, 25969216, 9216
Output: 96
Este es el código de golf. Aplican reglas estándar. La respuesta más corta (en bytes) gana.
while x**.5%1:
¿tal vez?