Ir al contenido (saltar navegación)

Número de Kaprekar

Tiempo máximo: 3,000 sMemoria máxima: 4096 KiB

El matemático indio Dattaraya Ramchandra Kaprekar trabajó en teoría de números, realizando varios descubrimientos a lo largo de su vida. Uno de ellos fue el conjunto de los que, desde entonces, se conocen como números de Kaprekar, que son aquellos números enteros positivos que, al ser elevados al cuadrado, pueden descomponerse (para una base dada, que asumiremos ser base 10) en dos enteros positivos cuya suma es igual al número original.

Por ejemplo, el número 703 es un número de Kaprekar, dado que 703² es 494209 que puede descomponerse en 494 y 209 cuya suma da, de nuevo, 703. Otro ejemplo es el 9 (9² = 81 y 8 + 1 = 9).

Hay que tener presente que ambos números en la descomposición no tienen por qué tener el mismo número de dígitos. Por ejemplo en el caso del número 2728 tenemos que 2728² = 7441984 que es número de Kaprekar porque 744 + 1984 = 2728. También puede darse el caso de que el número al cuadrado contenga algún cero. Por ejemplo, con el 4879 tenemos que 4879² = 23804641, que es un número de Kaprekar porque 238 + 04641 = 4879.

Si bien se permite que el primero de los valores de la descomposición sea 0 (y así por ejemplo 1 es número de Kaprekar), el segundo no puede serlo. Debido a ello, el 100 no es un número de Kaprekar. Fijate que 100² es 10000, que podría descomponerse en 100 y 00 cuya suma es 100. Sin embargo, el segundo número debería ser 0, que no se considera válido.

Entrada

La entrada del programa consistirá en varios casos de prueba. Cada caso de prueba será un número mayor o igual que 1 y menor que 65536. Los casos de prueba terminarán con un 0 que marcará el final de la entrada y que no hay que procesar.

Salida

Para cada caso de prueba el programa mostrará "SI" si es un número de Kaprekar, y "NO" en otro caso.

Entrada de ejemplo

22222
75
99
100
504
0

Salida de ejemplo

SI
NO
SI
NO
NO