Escreva o programa mais curto para imprimir os poderes não triviais ≤ 2 ^ 12 para
poder não trivial significa que a base e o expoente são> 1
O espaço em branco à esquerda é opcional
Quando há várias soluções, o pedido não é importante, portanto
16 = 4^2, 2^4
está bem
Saída de amostra:
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
Respostas:
Ruby 1.9,
112 11199 caracteresDemora cerca de 0,8 segundos para concluir no meu sistema. Uma solução mais rápida tem 111 caracteres:
fonte
Python, 113
Demora alguns segundos para concluir.
Uma versão mais rápida (148 caracteres), usando um dicionário para evitar o loop mais externo, é executada em ~ 0,01 s:
fonte
Windows PowerShell, 102
Com a ajuda de Ventero para o código inicial.
fonte
Jinterativo,11810198(última linha desnecessária)
Ainda há muito código para a apresentação ...
Nota: em teoria mudando
63
e63
paray
ey
economiza mais 2 bytes, mas essa versão usa quantidade extrema de memória.Editado por randomra.
fonte
'j';'^';' ';', '
salva 3 bytes. (Dado-se formatá-lo ...)Bash, 138 caracteres
Editar% s
for
para awhile
.+=
while
, reutilizando jv
em(())
, uso v para 4096 (último valor)(())
expressões,
:(fonte
PHP, 138 caracteres - Saída
Ungolfed
fonte
Python, 127 caracteres
fonte
Mathematica, 152 bytes
Isso ficou embaraçosamente longo. Algo como 25 caracteres são gastos na formatação de saída. O código real é bastante simples: filtre os números em que todos os expoentes na fatoração primária são iguais. Então, para cada um deles, produza um resultado para cada divisor do expoente (excluindo 1, incluindo ele próprio).
fonte
C (589 bytes)
Também não joguei golfe . Essa abordagem não é a melhor, mas é rápida o suficiente para produzir 0s exatos em ideona .
fonte
OCaml + Baterias,
220206158156 caracteresTomando uma dica das soluções mais bem pontuadas:
(Extremidades de linha em espaço em branco significativo para manter as linhas curtas.) Uma versão mais rápida, porém mais longa, que gera poderes em vez de testá-los:
fonte
Haskell, 146 caracteres
fonte
JavaScript, 160
194
fonte
Pitão, 39 bytes
Experimente online aqui .
Se o formato de saída for flexível o suficiente para remover a necessidade de espaços, -5 bytes para substituir
" = "
por\=
e", "
por\,
fonte
Haskell, 131
fonte
JavaScript, 148 caracteres
fonte
C 184
Deve compilar (com avisos) com qualquer compilador C
fonte
Pyth, 55 caracteres
Minha primeira vez usando Pyth, provavelmente pode ser melhorado. É uma força bruta que verifica até 64 ^ 64, portanto, é bastante lenta. Você pode economizar tempo marcando apenas 64 ^ 12, mas isso custaria um byte.
fonte
JavaScript (ES6) 134
127Edição revisada, corrigida e corrigida. Edição 2 Após algumas pesquisas, percebi que essa resposta era inválida por razões cronológicas. A questão é anterior a
arrow functions
anos.Tudo isso dito, as outras respostas do JS são muito complicadas
fonte
05AB1E , 36 bytes
Tenho a sensação de que isso pode ser melhorado um pouco, usando uma abordagem um pouco diferente.
Experimente online.
Explicação:
fonte