Tuliskan program terpendek untuk mencetak kekuatan non-sepele ≤ 2 ^ 12 secara berurutan
kekuatan non-trivial berarti basis dan eksponen adalah> 1
Leading whitespace adalah opsional
Ketika ada beberapa solusi, urutannya tidak penting, jadi
16 = 4^2, 2^4
tidak apa-apa
Output sampel:
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
Jawaban:
Ruby 1.9,
112 11199 karakterIni membutuhkan waktu sekitar 0,8 detik untuk menyelesaikan sistem saya. Solusi yang lebih cepat adalah 111 karakter:
sumber
Python, 113
Ini membutuhkan beberapa detik untuk selesai.
Versi yang lebih cepat (148 karakter), menggunakan kamus untuk menghindari loop terluar, berjalan dalam ~ 0,01 detik:
sumber
Windows PowerShell, 102
Dengan bantuan Ventero untuk kode awal.
sumber
InteractiveJ,11810198(baris terakhir terakhir tidak dibutuhkan)
Masih banyak kode untuk presentasi ...
Catatan: secara teori mengubah
63
dan63
key
dany
menyimpan 2 byte lebih banyak tetapi versi itu menggunakan jumlah memori yang ekstrem.Diedit oleh randomra.
sumber
'j';'^';' ';', '
menghemat 3 byte. (Diberikan memformatnya ...)Bash, 138 karakter
Suntingan
for
untuk awhile
.+=
while
, menggunakan kembali jv
dalam(())
, gunakan v untuk (nilai terakhir) 4096(())
ekspresi,
:(sumber
PHP, 138 karakter - Output
Tidak disatukan
sumber
Python, 127 karakter
sumber
Mathematica, 152 byte
Ini menjadi sangat memalukan. Sesuatu seperti 25 karakter dihabiskan untuk memformat output. Kode aktualnya cukup sederhana: saring angka-angka itu di mana semua eksponen dalam factorisation prima sama. Kemudian, untuk masing-masing menghasilkan satu hasil untuk setiap pembagi eksponen (tidak termasuk 1, termasuk itu sendiri).
sumber
C (589 bytes)
Saya tidak bermain golf juga, pendekatan ini bukan yang terbaik tetapi cukup cepat untuk menghasilkan angka 0 yang tepat di ideone .
sumber
Baterai OCaml +,
220206158156 karakterMengambil petunjuk dari solusi skor terbaik:
(Baris akhir pada spasi putih signifikan untuk menjaga garis pendek.) Versi lebih cepat tetapi lebih lama yang menghasilkan kekuatan alih-alih mengujinya:
sumber
Haskell, 146 karakter
sumber
JavaScript, 160
194
sumber
Pyth, 39 byte
Cobalah online di sini .
Jika format output cukup fleksibel untuk menghilangkan kebutuhan spasi, -5 byte untuk mengganti
" = "
dengan\=
dan", "
dengan\,
sumber
Haskell, 131
sumber
JavaScript, 148 karakter
sumber
C 184
Harus dikompilasi (dengan peringatan) dengan kompiler C apa pun
sumber
Pyth, 55 karakter
Pertama kali saya menggunakan Pyth, jadi mungkin bisa diperbaiki. Ini adalah kekuatan brutal yang memeriksa hingga 64 ^ 64, sehingga sangat lambat. Anda dapat menghemat waktu hanya dengan memeriksa hingga 64 ^ 12 tetapi akan memakan biaya satu byte.
sumber
JavaScript (ES6) 134
127Sunting yang direvisi, diperbaiki bug, dan disingkat Sunting 2 Setelah beberapa penelitian, saya menyadari bahwa jawaban ini tidak valid karena alasan kronologis. Pertanyaannya sudah ada sejak
arrow functions
bertahun-tahun.Semua yang mengatakan, jawaban JS lainnya terlalu rumit
sumber
05AB1E , 36 byte
Saya merasa ini dapat sedikit ditingkatkan dengan menggunakan pendekatan yang sedikit berbeda ..
Cobalah online.
Penjelasan:
sumber