Essayons à nouveau.
Le but de ce concours est de créer deux morceaux de code qui sont des anagrammes l'un de l'autre (les deux doivent contenir les mêmes octets dans un ordre différent), et ils effectueront les tâches suivantes:
Il faut tester si un nombre entré est heureux ou premier , et sortir si le nombre est soit (par exemple,
7
doit sortirhappy prime
et4
doit sortirsad non-prime
).L'autre doit sortir sa taille de code en octets sous forme de mot (un programme de 60 octets sortirait
sixty
, un programme de 39 octets sortiraitthirty-nine
).
Si des éclaircissements sont nécessaires sur les règles, n'hésitez pas à me le dire.
Il s'agit d'une compétition de golf de code, donc le programme le plus court gagne!
code-golf
math
primes
source-layout
Josiah Winslow
la source
la source
/*program1*/program2
et ensuiteprogram1/*program2*/
? Je pense que vous devriez interdire les commentaires.Réponses:
CJam,
804948 caractèresMISE À JOUR : Inspiré par l'implémentation de Dennis pour calculer la somme des carrés des chiffres, voici une version plus courte
Heureux / Triste Prime / Non-prime:
Comment ça fonctionne:
quarante huit
Comment cela fonctionne:
Essayez-le en ligne
Le premier programme lit le numéro de STDIN
Ma solution originale de 80 caractères
Heureux / Triste Prime / Non-prime:
quatre-vingts
la source
CJam,
5049 octetsTest de bonheur et de primalité
Lit un nombre de STDIN. Les deux tests ne fonctionnent que pour les entiers 64 bits.
Essayez-le en ligne.
Propre longueur
Imprime pourTy-nine .
la source
Golfscript - 81
Ce programme teste si un nombre est heureux et / ou premier.
Ce programme, une anagramme du dernier, produit "quatre-vingt-un" (sa taille octet en tant que mot).
Cela devrait servir d'exemple.
la source
J - 87 car
Une tentative naïve à ce sujet dans J. Pas d'utilisation de la bibliothèque standard, bien que je doute qu'elle se raccourcisse en l'utilisant.
La ligne en haut est un verbe prenant un entier et diagnostiquant son bonheur et sa primauté en tant que chaîne de sortie. La deuxième ligne est une expression renvoyant la chaîne
eighty-seven
, tandis que la troisième est une fonction constante faisant de même. J'ai inclus les deux parce qu'ils étaient tous les deux possibles et parce que je ne sais pas quelle sera la décision sur les réponses de fonction par opposition aux réponses de programme, et J n'a pas de fonctions sans argument - vous donnez simplement une fonction argument factice.Nous perdons la plupart des caractères vérifiant le bonheur.
(,[:+/@:*:,.&.":@{:)
est le corps principal qui additionne les carrés des chiffres d'un nombre, et(1-{:e.}:)
est le test pour savoir si ce nombre s'est déjà produit.sad`happy{~1 e.
transforme cela en un résultat de mot, et nous l'attachons à l'avant de la chaînenon-prime
, coupant potentiellement quatre caractères si le nombre était réellement premier.Dans l'anagramme, nous masquons simplement tous les bits qui ne sont pas
'eighty-seven'
dans une chaîne que nous ignorons. Je pourrais faire mieux si J avait plus de lettres à réutiliser, mais ce n'est pas le cas, alors eh bien.la source