Bei positiver Ganzzahl n > 2
. Wir konvertieren es wie folgt in ein Array:
- Wenn es gleich ist, wird
2
ein leeres Array zurückgegeben - Andernfalls erstellen Sie ein Array mit allen
n
Primfaktoren, die aufsteigend sortiert sind. Anschließend wird jedes Element durch seinen Index in der Reihenfolge der Primzahlen ersetzt und schließlich jedes Element in ein Array konvertiert
Lassen Sie uns beispielsweise eine Zahl 46
in ein Array konvertieren . Konvertieren Sie es zunächst in eine Reihe seiner Primfaktoren:
[2, 23]
Die Zahl 23
ist die 9
Primzahl. Ersetzen Sie sie 2
durch ein leeres Array und 23
durch [9]
. Array wird jetzt:
[[], [9]]
Primfaktoren von 9
sind 3
und 3
, also:
[[], [3, 3]]
Machen Sie dasselbe für beide 3
:
[[], [[2], [2]]]
Und schlussendlich:
[[], [[[]], [[]]]]
Um es zu kodieren, ersetzen wir einfach jede offene Klammer mit 1
und jede schließende Klammer mit 0
, entfernen dann alle endenden Nullen und lassen eine 1
vom Ende fallen. Dies ist unsere Binärzahl. Mit dem obigen Beispiel:
[ ] [ [ [ ] ] [ [ ] ] ]
| | | | | | | | | | | |
| | | | | | | | | | | |
V V V V V V V V V V V V
1 0 1 1 1 0 0 1 1 0 0 0
Nun einfach die letzten drei Nullen und die letzten fallen lassen 1
. Die Zahl wird 10111001
das ist 185
in Dezimal. Das ist die erwartete Ausgabe. Beachten Sie, dass in der Konvertierung von Array zu Binär keine Klammern des Hauptarrays enthalten sind.
Eingang
Positive ganze Zahl n
größer als 2
.
Ausgabe
Codierte Ganzzahl n
.
Regeln und IO-Format
- Es gelten Standardregeln.
- Die Eingabe kann eine Zeichenfolge oder eine Zahl sein (im Falle einer Zeichenfolge muss sie sich jedoch in der Basis 10 befinden).
- Die Ausgabe kann eine Zeichenfolge oder eine Zahl sein (im Falle einer Zeichenfolge muss sie sich jedoch in der Basis 10 befinden).
- Das ist Code-Golf , die kürzeste Antwort in Bytes gewinnt!
Testfälle
Weitere Testfälle auf Anfrage.
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
da die Einreichungen nicht zur Bearbeitung erforderlich sind.