Betrachten Sie die Zahl 99999999. Diese Zahl ist offensichtlich ein Palindrom. Der größte Primfaktor von 99999999 ist 137. Wenn Sie 99999999 durch 137 teilen, erhalten Sie 729927. Diese Zahl ist auch ein Palindrom.
Der größte Primfaktor von 729927 ist 101. 729927/101 = 7227, was wiederum ein Palindrom ist.
Der größte Primfaktor von 7227 ist 73. 7227/73 = 99, was wiederum ein Palindrom ist.
Durch weitere Division durch den größten Primfaktor erhalten Sie 9, 3 und schließlich 1, die als einstellige Zahlen auch Palindrome sind. Da 1 keine Primfaktoren hat, endet die Prozedur hier.
Als Verallgemeinerung dieser Beobachtung definiere ich ein Superpalindrom als ein Palindrom, das entweder 1 ist oder das ein anderes Superpalindrom ergibt, wenn es durch seinen größten Primfaktor dividiert wird.
Credits: /math/200835/sind- unendlich-viele- Superpalindrome
Bestimmen Sie anhand einer Zahl N , ob es sich um ein Super-Palindrom handelt, und geben Sie entsprechend einen Wahrheits- oder Falsch-Wert aus.
Ihr Programm sollte einen Wahrheitswert für diese Eingaben ausgeben:
1
101
121
282
313
353
373
393
474
737
919
959
1331
1441
2882
6446
7887
8668
9559
9779
Ihr Programm sollte einen Falsey-Wert für diese Eingaben ausgeben:
323
432
555
583
585
646
642
696
777
969
989
2112
3553
4554
5242
5225
5445
8080
8118
9988
Denken Sie daran, das ist Code-Golf , also gewinnt der Code mit der kürzesten Anzahl von Bytes.
quelle
N
zu Beginn immer ein Palindrom sein?Antworten:
Jelly ,
131298 BytesProbieren Sie es online! oder überprüfen Sie alle Testfälle .
Wie es funktioniert
quelle
Mathematica, 64 Bytes
Unbenannte Funktion, Rückkehr
True
oderFalse
. Bilden Sie eine Liste, indem Sie am Eingang beginnen und dann die Funktion "Ich geteilt durch meinen größten Primfaktor" iterieren, bis sich die Ausgabe nicht mehr ändert. (Zum Glück geht Mathematica jetzt davon aus, dass der größte Primfaktor von 1 1 ist.) Dann wird geprüft, ob die Listeneinträge Palindrome sind (yay built-ins! Boo function name length!) UndAnd
sie alle zusammen.quelle
FactorInteger[1]
mitFixedPoint
Mathematica, 51 Bytes
Rekursive anonyme Funktion. Nimmt eine Zahl als Eingabe und gibt sie zurück
True
oderFalse
als Ausgabe.quelle
05AB1E ,
98 BytesEin Byte gespeichert dank Adnan .
Probieren Sie es online!
Erläuterung
n = 7227
als Beispiel verwendetquelle
Ò.pPDíïQ
auch sollte funktionieren.Pyth -
1512 BytesBeat Jelly: P: /Leider werden all diese impliziten Maps nicht kürzer, wenn sie zu einer expliziten kombiniert werden, da die letzte ein Auto-Splat ist.
Test Suite .
Ruft alle Präfixe der Primfaktorisierung ab, deren Produkte die intermediären Superpalindrome sind, und überprüft, ob alle Palindrome sind.
quelle
Mathematica,
7163 BytesErläuterung
Faktor der Eingabe. (zB
8668 -> {{2, 2}, {11, 1}, {197, 1}}
für jede Liste in der Ausgabe ist das erste Element der Primfaktor und das zweite die Potenz.Duplizieren Sie für jedes Faktor-Potenz-Paar das erste Element mit dem zweiten Element und reduzieren Sie das gesamte Element. (
{{2, 2}, {11, 1}, {197, 1}} -> {{2, 2}, {11}, {197}} -> {2, 2, 11, 197}
)Durchlaufen Sie die Liste und multiplizieren Sie die Elemente. (
{2, 2, 11, 197} -> {2, 2 * 2, 2 * 2 * 11, 2 * 2 * 11 * 197} -> {2, 4, 44, 8668}
)Überprüfen Sie, ob alle resultierenden Zahlen Palindrome sind, und wenden Sie den
And
Operator an. ({2, 4, 44, 8668} -> {True, True, True, True}
->True
)quelle
Brachylog , 14 Bytes
Probieren Sie es online!
Erläuterung
Dies implementiert die in der Challenge-Beschreibung erläuterte Formel.
Die Berechnung aller Produkte von Suffixen der Primfaktorisierung und die Überprüfung, ob es sich um Palindrome handelt, dauert 1 Byte länger (
1|$p:@]f:{*.r}a
).quelle
Schläger 238 Bytes
Ungolfed:
Testen:
Ausgabe:
quelle
palin
ein fünf Byte langer Name ist?J, 30 Bytes
Fehler für Falsey, 1 für Truthy.
Anfänglicher Versuch, kein Fehler für Falsey, 40 Bytes:
Erläuterung
Testfälle
quelle
아희 (Aheui) , 309 Bytes (100 Zeichen * 3 Bytes + 9 Zeilenvorschübe)
Ich bin so froh, dass ich es tatsächlich geschafft habe!
Ich bin neu in dieser Sprache, daher ist jeder Tipp zur Verbesserung der Byteanzahl willkommen.
Probieren Sie es hier aus! (Kopieren Sie den Code und fügen Sie ihn ein)
Sauberere Version
quelle
Scala, 138 Bytes
Ungolfed:
Erläuterung:
quelle
JavaScript (ES6), 78 Byte
Erstellt rekursiv die Präfixe für die Primfaktorisierung und überprüft sie auf Palindromizität.
quelle
Java 7, 133 Bytes
Ungolfed
quelle
Eigentlich 29 Bytes
Es gibt wahrscheinlich mehrere Abschnitte dieses Codes, die man spielen könnte, obwohl ich mir noch nicht sicher bin, wo. Golfvorschläge sind willkommen. Probieren Sie es online!
Ungolfing
quelle