Каждое число может быть представлено с помощью бесконечно длинной последовательности остатков. Например, если мы берем число 7 и выполняем 7mod2, то 7mod3, тогда 7mod4и так далее, мы получаем 1,1,3,2,1,0,7,7,7,7,.....
Однако нам нужна кратчайшая возможная подпоследовательность, которая еще может быть использована, чтобы отличить ее от всех младших чисел. Повторное использование 7 [1,1,3]является самой короткой подпоследовательностью, потому что все предыдущие подпоследовательности не начинаются с [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...
Обратите внимание, что представление 7 [1,1] не работает, потому что его также можно использовать для представления 1. Однако вы должны вывести [1]с вводом 1.
Ввод, вывод
Ваш ввод является неотрицательным целым числом. Вы должны вывести последовательность или список последовательности минимальной длины остатков, как определено выше.
Тестовые случаи:
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
Вот первые 10000 последовательностей , если вам интересно (номера строк выключены на 1).
Это код-гольф , поэтому делайте его как можно короче на своем любимом языке. Поддельные бонусные баллы за любые быстрые ответы!