Herausforderung:
Sie erhalten eine Basis 10 Nummer. Für jede Basis von 10 abwärts bis zur Basis 2:
- Nehmen Sie die ursprüngliche Eingabenummer als Zeichenfolge zur Basis 10 und entfernen Sie alle Ziffern der Nummer, die für die Basis ungültig sind.
- Interpretieren Sie die resultierende Zahlenfolge in dieser Basis. Wenn dies 1 oder 0 ergibt, beenden Sie den gesamten Prozess.
- Gibt den größten Primfaktor als Dezimalzahl aus oder druckt ihn aus.
Die Ausgabe kann eine Reihe der größten Primfaktoren sein.
Beispielfälle:
Eingang:
987654321
Ausgabe:
379721
10593529
1091
179
1493
293
19
7
Abwechselnd:
[379721,10593529,1091,179,1493,293,19,7]
Dies druckt die größten Primfaktoren von 987654321, 87654321 9 = 42374116 10 , 7654321 8 = 2054353 10 und so weiter, bis 1 2 erreicht ist und dort aufhört.
code-golf
math
primes
base-conversion
poi830
quelle
quelle
Antworten:
Pyth, 25 Bytes
Probieren Sie es hier aus.
quelle
Pyth - 16 Bytes
Probieren Sie es hier online aus .
Es gibt manchmal ein paar leere Zeilen auf Eingaben ohne alle Ziffern, ich weiß, ob das ein Problem ist.quelle
MATL ,
1715 BytesDabei wird die Zahl als Zeichenfolge mit Anführungszeichen verwendet, was standardmäßig zulässig ist.
Probieren Sie es online!
Erläuterung
quelle
Julia, 101 Bytes
Dies ist eine rekursive Funktion, die die Eingabe als Zeichenfolge akzeptiert und ein Array zurückgibt.
Ungolfed:
quelle
Mathematica, 83 Bytes
Anonyme Funktion, gibt eine Liste zurück. Nicht so kompliziert, um ehrlich zu sein.
quelle
Ruby, 120 Bytes
Rekursive Funktion, nimmt die Eingabe als Zeichenfolge.
quelle
-rprime
Befehlszeilenflag anstelle von verwendenrequire
.-rprime
funktioniert aus irgendeinem Grund nicht für mich ...Pyke, 19 Bytes, nicht konkurrierend
(füge splat_node hinzu)Probieren Sie es hier aus!
Nimmt Eingaben in Anführungszeichen vor, beendet mit einem Fehler.
Erklärung (Newline ersetzt durch \ n):
quelle