给定正整数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。
规则和IO格式
- 适用标准规则。
- 输入可以是字符串或数字(但如果是字符串,则必须以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因为不需要提交来处理它。