Дано целое положительное число n > 2. Мы конвертируем его в массив следующим образом:
- Если оно равно
2возвращать пустой массив - В противном случае создайте массив всех
nпростых факторов, отсортированных по возрастанию, затем каждый элемент замените своим индексом в последовательности простых чисел и, наконец, преобразуйте каждый элемент в массив.
Например, давайте преобразовать число 46в массив. Во-первых, преобразуйте его в массив основных факторов:
[2, 23]
Число 23- это 9простое число, поэтому замените его 2на пустой массив и 23на [9]. Массив теперь становится:
[[], [9]]
Главными факторами 9являются, 3а 3, значит:
[[], [3, 3]]
Сделайте то же самое для обоих 3:
[[], [[2], [2]]]
И наконец:
[[], [[[]], [[]]]]
Теперь, чтобы закодировать его, мы просто заменяем каждую открытую скобку на 1и каждую закрывающую скобку 0, затем удаляем все конечные нули и сбрасываем один 1с конца. Это наше двоичное число. Используя приведенный выше пример:
[ ] [ [ [ ] ] [ [ ] ] ]
| | | | | | | | | | | |
| | | | | | | | | | | |
V V V V V V V V V V V V
1 0 1 1 1 0 0 1 1 0 0 0
Теперь просто отбросьте последние три нуля и последний 1. Номер становится 10111001который есть185 в десятичной системе . Это ожидаемый результат. Обратите внимание, что в преобразование массива в двоичные скобки основного массива не включены.
вход
Целое положительное число nбольше чем 2.
Выход
Закодированное целое число n.
Правила и формат ввода-вывода
- Стандартные правила применяются.
- Входные данные могут быть строкой или числом (но в случае строки они должны быть в базе 10).
- Вывод может быть строкой или числом (но в случае строки это должно быть в базе 10).
- Это код-гольф , выигрывает самый короткий ответ в байтах!
Контрольные примеры
Больше тестов по запросу.
3 ---> 1
4 ---> 2
5 ---> 3
6 ---> 5
7 ---> 6
8 ---> 10
9 ---> 25
10 ---> 11
10000 ---> 179189987
10001 ---> 944359
10002 ---> 183722
10003 ---> 216499
10004 ---> 2863321
10005 ---> 27030299
10006 ---> 93754
10007 ---> 223005
10008 ---> 1402478
2так как представления не обязаны обрабатывать его.