Cada número se puede representar usando una secuencia de resto infinitamente larga. Por ejemplo, si tomamos el número 7 y realizamos 7mod2
, entonces 7mod3
, luego 7mod4
, y así sucesivamente, obtenemos 1,1,3,2,1,0,7,7,7,7,....
.
Sin embargo, necesitamos la subsecuencia remanente más corta posible que aún pueda usarse para distinguirla de todos los números más bajos. Usar 7 nuevamente, [1,1,3]
es la subsecuencia más corta, porque todas las subsecuencias anteriores no comienzan con [1,1,3]
:
0: 0,0,0,0...
1: 1,1,1,1...
2: 0,2,2,2...
3: 1,0,3,3...
4: 0,1,0,4...
5: 1,2,1,0...
6: 0,0,2,1...
Tenga en cuenta que [1,1]
no funciona para representar 7, porque también se puede usar para representar 1. Sin embargo, debe generar [1]
una entrada de 1.
De entrada y salida
Su entrada es un entero no negativo. Debe generar una secuencia o lista de la secuencia de restos de longitud mínima como se definió anteriormente.
Casos de prueba:
0: 0
1: 1
2: 0,2
3: 1,0
4: 0,1
5: 1,2
6: 0,0,2
7: 1,1,3
8: 0,2,0
9: 1,0,1
10: 0,1,2
11: 1,2,3
12: 0,0,0,2
30: 0,0,2,0
42: 0,0,2,2
59: 1,2,3,4
60: 0,0,0,0,0,4
257: 1,2,1,2,5,5
566: 0,2,2,1,2,6,6
1000: 0,1,0,0,4,6,0,1
9998: 0,2,2,3,2,2,6,8,8,10
9999: 1,0,3,4,3,3,7,0,9,0
Aquí están las primeras 10,000 secuencias , en caso de que esté interesado (los números de línea están apagados en 1).
Este es un código de golf , así que hágalo lo más corto posible en su idioma favorito. ¡Puntos de bonificación falsos por cualquier respuesta que sea rápida!