Cada número pode ser representado usando uma sequência restante infinitamente longa. Por exemplo, se pegarmos o número 7 e executar 7mod2
, então 7mod3
, então 7mod4
e assim por diante, obteremos 1,1,3,2,1,0,7,7,7,7,....
.
No entanto, precisamos da subsequência restante mais curta possível que ainda possa ser usada para distingui-la de todos os números inferiores. Usar 7 novamente, [1,1,3]
é a subsequência mais curta, porque todas as subsequências anteriores não começam com [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...
Observe que [1,1]
não funciona para representar 7, porque também pode ser usado para representar 1. No entanto, você deve produzir [1]
com uma entrada 1.
Entrada / Saída
Sua entrada é um número inteiro não negativo. Você deve produzir uma sequência ou lista da sequência de tamanho mínimo dos restantes, conforme definido acima.
Casos de teste:
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
Aqui estão as primeiras 10.000 seqüências , caso você esteja interessado (os números das linhas são 1 em menos).
Como é um código de golfe , faça com que seja o mais curto possível no seu idioma favorito. Pontos de bônus falsos para respostas rápidas!