Escriba el programa más corto para imprimir los poderes no triviales ≤ 2 ^ 12 en orden
poder no trivial significa que la base y el exponente son> 1
El espacio en blanco inicial es opcional
Cuando hay varias soluciones, el orden no es importante, por lo que
16 = 4^2, 2^4
esta bien
Salida de muestra:
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
Respuestas:
Ruby 1.9,
112 11199 caracteresEsto demora aproximadamente 0,8 segundos en completarse en mi sistema. Una solución más rápida tiene 111 caracteres de longitud:
fuente
Python, 113
Esto lleva unos segundos en completarse.
Una versión más rápida (148 caracteres), que usa un diccionario para evitar el bucle más externo, se ejecuta en ~ 0.01 segundos:
fuente
Windows PowerShell, 102
Con ayuda de Ventero para el código inicial.
fuente
InteractivoJ,11810198(última línea innecesaria)
Todavía hay mucho código para la presentación ...
Nota: en la teoría de cambiar
63
y63
paray
yy
ahorra más de 2 bytes, sino que utiliza la versión extrema cantidad de memoria.Editado por randomra.
fuente
'j';'^';' ';', '
guardar 3 bytes. (Dado el formato ...)Bash, 138 caracteres
Ediciones
for
para awhile
.+=
while
, reutilizando jv
en(())
, el uso v para 4096 (último valor)(())
expresiones,
:(fuente
PHP, 138 caracteres - Salida
Sin golf
fuente
Python, 127 caracteres
fuente
Mathematica, 152 bytes
Esto se hizo vergonzosamente largo. Algo así como 25 caracteres se gastan en el formato de salida. El código real es bastante simple: filtre aquellos números donde todos los exponentes en la factorización prima son iguales. Luego, para cada uno de ellos, se produce un resultado para cada divisor del exponente (excluyendo 1, incluido él mismo).
fuente
C (589 bytes)
No jugué al golf también, este enfoque no es el mejor, pero sí lo suficientemente rápido como para producir un 0 exacto en ideone .
fuente
OCaml + baterías,
220206158156 caracteresTomando una pista de las soluciones mejor calificadas:
(Terminaciones de línea en espacios en blanco significativos para mantener las líneas cortas.) Una versión más rápida pero más larga que genera poderes en lugar de probarlos:
fuente
Haskell, 146 caracteres
fuente
JavaScript, 160
194
fuente
Pyth, 39 bytes
Pruébelo en línea aquí .
Si el formato de salida es lo suficientemente flexible como para eliminar la necesidad de espacios, -5 bytes para reemplazar
" = "
con\=
y", "
con\,
fuente
Haskell, 131
fuente
JavaScript, 148 caracteres
fuente
C 184
Debe compilar (con advertencias) con cualquier compilador de C
fuente
Pyth, 55 caracteres
Mi primera vez usando Pyth, por lo que probablemente pueda mejorarse. Es una fuerza bruta que controla hasta 64 ^ 64, por lo que es bastante lenta. Puede ahorrar tiempo solo comprobando hasta 64 ^ 12 pero costaría un byte.
fuente
JavaScript (ES6) 134
127Edición revisada, corregida y acortada Edición 2 Después de algunas investigaciones, me di cuenta de que esta respuesta no era válida por razones cronológicas. La pregunta es anterior
arrow functions
a años.Dicho todo esto, las otras respuestas de JS son demasiado complicadas
fuente
05AB1E , 36 bytes
Tengo la sensación de que esto puede mejorarse un poco utilizando un enfoque ligeramente diferente.
Pruébalo en línea.
Explicación:
fuente