Étant donné entier positif n > 2
. Nous le convertissons en un tableau comme suit:
- S'il est égal à
2
retourner un tableau vide - Sinon, créez un tableau de tous
n
les facteurs premiers triés par ordre croissant, puis chaque élément est remplacé par son index dans la séquence des nombres premiers et convertit finalement chaque élément en tableau.
Par exemple, permet de convertir un nombre 46
en tableau. Tout d’abord, convertissez-le en un tableau de ses facteurs premiers:
[2, 23]
Le nombre 23
est 9
th prime, alors remplacez-le 2
par un tableau vide et 23
par [9]
. Le tableau devient maintenant:
[[], [9]]
Les facteurs premiers 9
sont 3
et 3
, donc:
[[], [3, 3]]
Faites la même chose pour les deux 3
:
[[], [[2], [2]]]
Et enfin:
[[], [[[]], [[]]]]
Maintenant, pour l'encoder, nous remplaçons simplement chaque crochet ouvert par 1
et chaque crochet de fermeture 0
, puis supprimons tous les zéros 1
finals et en supprimons un de la fin. Ceci est notre nombre binaire. En utilisant l'exemple ci-dessus:
[ ] [ [ [ ] ] [ [ ] ] ]
| | | | | | | | | | | |
| | | | | | | | | | | |
V V V V V V V V V V V V
1 0 1 1 1 0 0 1 1 0 0 0
Maintenant, supprimez simplement les trois derniers zéros et le dernier 1
. Le nombre devient 10111001
ce qui est 185
en décimal. C'est la sortie attendue. Notez que dans un tableau, les crochets de conversion du tableau principal ne sont pas inclus.
Contribution
Nombre entier positif n
supérieur à 2
.
Sortie
Entier codé n
.
Règles et format IO
- Les règles standard s'appliquent.
- L'entrée peut être une chaîne ou un nombre (mais dans le cas d'une chaîne, il doit être en base 10).
- La sortie peut être une chaîne ou un nombre (mais dans le cas d'une chaîne, elle doit être en base 10).
- C'est code-golf , la réponse la plus courte en octets gagne!
Cas de test
Plus de cas de test sur demande.
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
car les soumissions ne sont pas nécessaires pour le gérer.