Schreiben Sie das kürzeste Programm, um die nicht-trivialen Potenzen ≤ 2 ^ 12 der Reihe nach auszudrucken
Nicht-triviale Potenz bedeutet, dass Basis und Exponent> 1 sind
Führende Leerzeichen sind optional.
Wenn es mehrere Lösungen gibt, ist die Reihenfolge nicht wichtig
16 = 4^2, 2^4
ist in Ordnung
Beispielausgabe:
4 = 2^2
8 = 2^3
9 = 3^2
16 = 2^4, 4^2
25 = 5^2
27 = 3^3
32 = 2^5
36 = 6^2
49 = 7^2
64 = 2^6, 4^3, 8^2
81 = 3^4, 9^2
100 = 10^2
121 = 11^2
125 = 5^3
128 = 2^7
144 = 12^2
169 = 13^2
196 = 14^2
216 = 6^3
225 = 15^2
243 = 3^5
256 = 2^8, 4^4, 16^2
289 = 17^2
324 = 18^2
343 = 7^3
361 = 19^2
400 = 20^2
441 = 21^2
484 = 22^2
512 = 2^9, 8^3
529 = 23^2
576 = 24^2
625 = 5^4, 25^2
676 = 26^2
729 = 3^6, 9^3, 27^2
784 = 28^2
841 = 29^2
900 = 30^2
961 = 31^2
1000 = 10^3
1024 = 2^10, 4^5, 32^2
1089 = 33^2
1156 = 34^2
1225 = 35^2
1296 = 6^4, 36^2
1331 = 11^3
1369 = 37^2
1444 = 38^2
1521 = 39^2
1600 = 40^2
1681 = 41^2
1728 = 12^3
1764 = 42^2
1849 = 43^2
1936 = 44^2
2025 = 45^2
2048 = 2^11
2116 = 46^2
2187 = 3^7
2197 = 13^3
2209 = 47^2
2304 = 48^2
2401 = 7^4, 49^2
2500 = 50^2
2601 = 51^2
2704 = 52^2
2744 = 14^3
2809 = 53^2
2916 = 54^2
3025 = 55^2
3125 = 5^5
3136 = 56^2
3249 = 57^2
3364 = 58^2
3375 = 15^3
3481 = 59^2
3600 = 60^2
3721 = 61^2
3844 = 62^2
3969 = 63^2
4096 = 2^12, 4^6, 8^4, 16^3, 64^2
Antworten:
Ruby 1.9,
112 11199 ZeichenDieser Vorgang dauert auf meinem System etwa 0,8 Sekunden. Eine schnellere Lösung ist 111 Zeichen lang:
quelle
Python, 113
Dies dauert einige Sekunden.
Eine schnellere (148 Zeichen) Version, die ein Wörterbuch verwendet, um die äußerste Schleife zu vermeiden, läuft in ~ 0,01 Sekunden:
quelle
Windows PowerShell, 102
Mit Hilfe von Ventero für den ersten Code.
quelle
InteractiveJ,11810198(Letzte nicht benötigte Zeile)
Noch viel Code für die Präsentation ...
Hinweis: in der Theorie zu ändern
63
und63
zuy
undy
spart 2 weitere Bytes aber diese Version verwendet extreme Menge an Speicher.Bearbeitet von randomra.
quelle
'j';'^';' ';', '
3 Bytes gespeichert . (Bash, 138 Zeichen
Bearbeitungen
for
für awhile
.+=
while
, Wiederverwendung von jv
in(())
, v Verwendung für 4096 (letzter Wert)(())
Ausdrücke verbinden,
:(quelle
PHP, 138 Zeichen - Ausgabe
Ungolfed
quelle
Python, 127 Zeichen
quelle
Mathematica, 152 Byte
Das wurde peinlich lange. Etwa 25 Zeichen werden für die Ausgabeformatierung verwendet. Der eigentliche Code ist ziemlich einfach: Filtern Sie die Zahlen, bei denen alle Exponenten in der Primfaktorisierung gleich sind. Dann liefert jeder dieser Werte ein Ergebnis für jeden Teiler des Exponenten (mit Ausnahme von 1, einschließlich sich selbst).
quelle
C (589 Bytes)
Ich habe nicht Golf gespielt, auch dieser Ansatz ist nicht der beste, aber dennoch schnell genug, um eine exakte Null in Ideone zu erreichen .
quelle
OCaml + Batteries,
220206158156 ZeichenNehmen Sie einen Hinweis von den am besten bewerteten Lösungen:
(Zeilenenden mit signifikanten Leerzeichen, um die Zeilen kurz zu halten.) Eine schnellere, aber längere Version, die Potenzen erzeugt, anstatt sie zu testen:
quelle
Haskell, 146 Zeichen
quelle
JavaScript, 160
194
quelle
Pyth, 39 Bytes
Probieren Sie es hier online aus .
Wenn das Ausgabeformat flexibel genug ist , um die Notwendigkeit von Räumen zu entfernen, -5 - Bytes zu ersetzen ,
" = "
mit\=
und", "
mit\,
quelle
Haskell, 131
quelle
JavaScript, 148 Zeichen
quelle
C 184
Sollte (mit Warnungen) mit jedem C-Compiler kompilieren
quelle
Pyth, 55 Zeichen
Ich habe Pyth zum ersten Mal benutzt, daher kann es wahrscheinlich verbessert werden. Es ist eine Brute-Force, die bis zu 64 ^ 64 prüft, also ziemlich langsam ist. Sie können Zeit sparen, indem Sie nur bis zu 64 ^ 12 prüfen, dies würde jedoch ein Byte kosten.
quelle
JavaScript (ES6) 134
127Edit überarbeitet, Bugfix und gekürzt Edit 2 Nach einigen Recherchen stellte ich fest, dass diese Antwort aus chronologischen Gründen ungültig war. Die Frage geht
arrow functions
um Jahre zurück.Trotzdem sind die anderen Antworten von JS viel zu kompliziert
quelle
05AB1E , 36 Bytes
Ich habe das Gefühl, dass dies durch einen etwas anderen Ansatz ein wenig verbessert werden kann.
Probieren Sie es online aus.
Erläuterung:
quelle