Dado entero positivo n > 2
. Lo convertimos en una matriz de la siguiente manera:
- Si es igual a
2
devolver una matriz vacía - De lo contrario, cree una matriz de todos
n
los factores primos ordenados de forma ascendente, luego cada elemento reemplace con su índice en la secuencia de números primos y finalmente convierta cada elemento en matriz
Por ejemplo, vamos a convertir el número 46
a la matriz. En primer lugar, conviértalo en una matriz de sus factores primos:
[2, 23]
El número 23
es el 9
primo, así que reemplácelo 2
con una matriz vacía y 23
con [9]
. La matriz ahora se convierte en:
[[], [9]]
Los factores primos de 9
son 3
y 3
, entonces:
[[], [3, 3]]
Haz lo mismo para ambos 3
:
[[], [[2], [2]]]
Y finalmente:
[[], [[[]], [[]]]]
Ahora, para codificarlo, simplemente reemplazamos cada corchete abierto con 1
y cada corchete de cierre con 0
, luego eliminamos todos los ceros finales y soltamos uno 1
desde el final. Este es nuestro número binario. Usando el ejemplo anterior:
[ ] [ [ [ ] ] [ [ ] ] ]
| | | | | | | | | | | |
| | | | | | | | | | | |
V V V V V V V V V V V V
1 0 1 1 1 0 0 1 1 0 0 0
Ahora simplemente suelte los últimos tres ceros y el último 1
. El número se convierte en 10111001
lo que es 185
en decimal. Esa es la salida esperada. Observe que en la matriz a paréntesis de conversión binarios de la matriz principal no están incluidos.
Entrada
Entero positivo n
mayor que 2
.
Salida
Entero codificado n
.
Reglas y formato IO
- Aplican reglas estándar.
- La entrada puede ser cadena o número (pero en caso de cadena debe estar en la base 10).
- La salida puede ser cadena o número (pero en caso de cadena debe estar en la base 10).
- Este es el código de golf , ¡la respuesta más corta en bytes gana!
Casos de prueba
Más casos de prueba a pedido.
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
ya que no se requieren los envíos para manejarlo.