C - Constante de Kaprekar
Languages: C, C++, Java, Python, Kotlin
Time & Memory limits:
(details)
Considere la siguiente operación sobre un número de 4 dígitos (ceros a la izquierda son permitidos):
1. Reordena los dígitos descendentemente para obtener un número X de 4 dígitos.
2. Reordena los dígitos ascendentemente para obtener un número Y de 4 dígitos.
3. El resultado es X−Y
El matemático indio Kaprekar descubrió que si aplicamos esta operación sobre cualquier número de 4 dígitos usando al menos dos dígitos diferentes se llegará al valor fijo 6174 en a lo sumo 7 iteraciones. El valor 6174 es conocido como la constante de Kaprekar. Toma 1234 por ejemplo. Luego de una iteración, obtenemos X−Y=4321−1234=3087. Después de la segunda iteración, obtenemos 8730−0378=8352. Después de la tercera iteración, obtenemos 8532−2358=6174. 6174 es el valor fijo porque 7641−1467=6174. Nota que si escogemos un número con todos los dígitos iguales, el resultado será 0000. Por ejemplo, 3333−3333=0000.
Qué sucede en el caso de 5 dígitos? Algunos números no se detienen en un valor fijo. Por ejemplo, 87433 entra en un ciclo de longitud 2, {53955,59994}. Dado un número de 5 dígitos, puedes determinar cuál será el resultado luego de 999999 iteraciones.