Напишите самую короткую программу для печати нетривиальных степеней ≤ 2 ^ 12 по порядку
нетривиальная степень означает, что основание и показатель степени> 1
Начальные пробелы необязательны.
При наличии нескольких решений порядок не важен, поэтому
16 = 4^2, 2^4
в порядке
Пример вывода:
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
Ответы:
Рубин 1.9,
112 11199 символовЭто займет около 0,8 секунд для завершения в моей системе. Более быстрое решение - 111 символов:
источник
Python, 113
Это займет несколько секунд.
Более быстрая (148 символов) версия, использующая словарь, чтобы избежать внешнего цикла, выполняется за ~ 0,01 сек:
источник
Windows PowerShell, 102
С помощью Ventero для начального кода.
источник
ИнтерактивнаяJ,11810198(последняя новая строка не нужна)
Еще много кода для презентации ...
Примечание: в теории изменения
63
и63
кy
иy
сохраняет еще 2 байта , но эта версия использует экстремальный объем памяти.Отредактировано randomra.
источник
'j';'^';' ';', '
сохранения 3 байта. (Баш, 138 символов
Правки
for
для аwhile
.+=
while
повторным использованием jv
в(())
, использовании V для 4096 (последнего значения)(())
выражения,
:(источник
PHP, 138 символов - Вывод
Ungolfed
источник
Питон, 127 символов
источник
Mathematica, 152 байта
Это стало смущающе долго. Примерно 25 символов тратятся на форматирование вывода. Фактический код довольно прост: отфильтруйте те числа, в которых все показатели в простой факторизации равны. Затем для каждого из них выведите один результат для каждого делителя показателя степени (исключая 1, включая самого себя).
источник
C (589 байт)
Я не играл в гольф, и этот подход не самый лучший, но все же достаточно быстрый, чтобы получить точные нули в идеоне .
источник
Аккумуляторы OCaml +,
220206158156 символовПодсказка от лучших решений:
(Концы строк на значительном пробеле сохраняют короткие строки.) Более быстрая, но более длинная версия, которая генерирует силы вместо их тестирования:
источник
Haskell, 146 символов
источник
JavaScript, 160
194
источник
Pyth, 39 байт
Попробуйте это онлайн здесь .
Если формат вывода достаточно гибок, чтобы устранить необходимость в пробелах, -5 байтов, чтобы заменить
" = "
на\=
и", "
с\,
источник
Хаскелл, 131
источник
JavaScript, 148 символов
источник
С 184
Должен компилироваться (с предупреждениями) любым компилятором C
источник
Pyth, 55 символов
Я впервые использую Pyth, поэтому, возможно, его можно улучшить. Это грубая сила, которая проверяет до 64 ^ 64, поэтому довольно медленно. Вы можете сэкономить время, проверяя только до 64 ^ 12, но это будет стоить байт.
источник
JavaScript (ES6) 134
127Правка исправлена, исправлена и сокращена Править 2 После некоторых исследований я поняла, что этот ответ был недействительным по хронологическим причинам. Вопрос предшествует
arrow functions
годам.Все это говорит, что другие ответы JS слишком сложны
источник
05AB1E , 36 байт
У меня такое ощущение, что это можно немного улучшить, если использовать немного другой подход.
Попробуйте онлайн.
Объяснение:
источник