Ecrivez le programme le plus court pour imprimer les puissances non triviales ≤ 2 ^ 12 dans l'ordre
une puissance non triviale signifie que la base et l'exposant sont> 1
Le premier espace est facultatif.
Lorsqu'il existe plusieurs solutions, la commande n'est pas importante, donc
16 = 4^2, 2^4
est ok
Exemple de sortie:
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
Réponses:
Ruby 1.9,
112 11199 caractèresCela prend environ 0,8 seconde pour terminer sur mon système. Une solution plus rapide comporte 111 caractères:
la source
Python, 113
Cela prend quelques secondes.
Une version plus rapide (148 caractères), utilisant un dictionnaire pour éviter la boucle la plus externe, s'exécute en ~ 0,01 sec:
la source
Windows PowerShell, 102
Avec l'aide de Ventero pour le code initial.
la source
InteractiveJ,11810198(dernière nouvelle ligne inutile)
Encore beaucoup de code pour la présentation ...
Remarque: en théorie, changer
63
et63
ày
ety
enregistre 2 plus d' octets , mais cette version utilise quantité extrême de la mémoire.Édité par randomra.
la source
'j';'^';' ';', '
enregistrer 3 octets. (Abandonné le formatage ...)Bash, 138 caractères
Modifications
for
pour awhile
.+=
while
, réutilisation de jv
en(())
, l' utilisation v pour 4096 (dernière valeur)(())
expressions,
:(la source
PHP, 138 caractères - Sortie
Non golfé
la source
Python, 127 caractères
la source
Mathematica, 152 octets
Cela est devenu d'une longueur embarrassante. Quelque chose comme 25 caractères sont dépensés pour le formatage de sortie. Le code réel est assez simple: filtrez les nombres où tous les exposants de la factorisation première sont égaux. Ensuite, pour chacun d'entre eux, produire un résultat pour chaque diviseur de l'exposant (à l'exclusion de 1, y compris lui-même).
la source
C (589 octets)
Je n'ai pas joué au golf également, cette approche n'est pas la meilleure mais elle est pourtant assez rapide pour produire un 0 exact en idéone .
la source
OCaml + batteries,
220206158156 caractèresPrendre un indice parmi les solutions les mieux notées:
(Les fins de ligne à des espaces significatifs pour garder les lignes courtes.) Une version plus rapide mais plus longue qui génère des pouvoirs au lieu de les tester:
la source
Haskell, 146 caractères
la source
JavaScript, 160
194
la source
Pyth, 39 octets
Essayez-le en ligne ici .
Si le format de sortie est suffisamment flexible pour supprimer le besoin d'espaces, -5 octets à remplacer
" = "
par\=
et", "
avec\,
la source
Haskell, 131
la source
JavaScript, 148 caractères
la source
C 184
Devrait compiler (avec des avertissements) avec n'importe quel compilateur C
la source
Pyth, 55 caractères
Ma première fois en utilisant Pyth, il peut donc probablement être amélioré. C'est une force brute qui vérifie jusqu'à 64 ^ 64, donc est assez lente. Vous pouvez gagner du temps en vérifiant uniquement jusqu'à 64 ^ 12, mais cela coûterait un octet.
la source
JavaScript (ES6) 134
127Edit révisé, corrigé et raccourci Edit 2 Après quelques recherches, j'ai réalisé que cette réponse n'était pas valide pour des raisons chronologiques. La question est antérieure
arrow functions
à des années.Cela dit, les autres réponses JS sont beaucoup trop compliquées
la source
05AB1E , 36 octets
J'ai le sentiment que cela peut être amélioré un peu en utilisant une approche légèrement différente ..
Essayez-le en ligne.
Explication:
la source