Bei positiver Ganzzahl n > 2. Wir konvertieren es wie folgt in ein Array:
- Wenn es gleich ist, wird
2ein leeres Array zurückgegeben - Andernfalls erstellen Sie ein Array mit allen
nPrimfaktoren, 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 46in ein Array konvertieren . Konvertieren Sie es zunächst in eine Reihe seiner Primfaktoren:
[2, 23]
Die Zahl 23ist die 9Primzahl. Ersetzen Sie sie 2durch ein leeres Array und 23durch [9]. Array wird jetzt:
[[], [9]]
Primfaktoren von 9sind 3und 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 1und jede schließende Klammer mit 0, entfernen dann alle endenden Nullen und lassen eine 1vom 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 10111001das ist 185in 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 ngröß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
2da die Einreichungen nicht zur Bearbeitung erforderlich sind.