Chaque nombre peut être représenté en utilisant une séquence de reste infiniment longue. Par exemple, si nous prenons le nombre 7 et que nous effectuons 7mod2
, alors 7mod3
, alors 7mod4
, et ainsi de suite, nous obtenons 1,1,3,2,1,0,7,7,7,7,....
.
Cependant, nous avons besoin de la sous- séquence de reste la plus courte possible qui peut encore être utilisée pour la distinguer de tous les nombres inférieurs. Utiliser à nouveau 7 [1,1,3]
est la sous-séquence la plus courte, car toutes les sous-séquences précédentes ne commencent pas par [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...
Notez que [1,1]
cela ne fonctionne pas pour représenter 7, car il peut également être utilisé pour représenter 1. Cependant, vous devez sortir [1]
avec une entrée de 1.
Entrée sortie
Votre entrée est un entier non négatif. Vous devez générer une séquence ou une liste de la séquence de reste de longueur minimale définie ci-dessus.
Cas de test:
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
Voici les 10 000 premières séquences , au cas où vous seriez intéressé (les numéros de ligne sont décalés de 1).
Il s'agit d'un code-golf , alors faites-le aussi court que possible dans votre langue préférée. Faux points bonus pour toutes les réponses rapides!