Versuchen wir es noch einmal.
Das Ziel dieses Wettbewerbs ist es, zwei Codeteile zu erstellen, die Anagramme voneinander sind (die beiden müssen dieselben Bytes in einer anderen Reihenfolge enthalten) und die folgenden Aufgaben ausführen:
Man muss testen, ob eine eingegebene Zahl glücklich oder prim ist , und ausgeben, wenn die Zahl entweder ist (muss zum Beispiel
7
ausgebenhappy prime
und4
muss ausgebensad non-prime
).Der andere muss seine Codegröße in Bytes als Wort ausgeben (ein 60-Byte-Programm würde ausgeben
sixty
, ein 39-Byte-Programm würde ausgebenthirty-nine
).
Wenn eine Klärung der Regeln erforderlich ist, zögern Sie nicht, mich zu informieren.
Dies ist ein Code-Golf-Wettbewerb, also gewinnt das kürzeste Programm!
code-golf
math
primes
source-layout
Josiah Winslow
quelle
quelle
/*program1*/program2
und dannprogram1/*program2*/
? Ich denke, Sie sollten Kommentare nicht zulassen.Antworten:
CJam,
804948 ZeichenUPDATE : Inspiriert von Dennis 'Implementierung zur Berechnung der Summe der Quadrate der Ziffern, ist hier eine kürzere Version
Happy / Sad Prime / Non-Prime:
Wie es funktioniert:
Achtundvierzig
So funktioniert das:
Probieren Sie es online aus
Das erste Programm liest die Nummer von STDIN
Meine ursprüngliche 80-Zeichen-Lösung
Happy / Sad Prime / Non-Prime:
achtzig
quelle
CJam,
5049 BytesGlücks- und Primalitätstest
Liest eine Nummer von STDIN. Beide Tests funktionieren nur für 64-Bit-Ganzzahlen.
Probieren Sie es online aus.
Eigene Länge
Druck neunundvierzig .
quelle
Golfscript - 81
Dieses Programm testet, ob eine Zahl glücklich und / oder prim ist.
Dieses Programm, ein Anagramm des letzten, gibt "einundachtzig" aus (seine Bytesize als Wort).
Dies sollte als Beispiel dienen.
quelle
J - 87 char
Ein naiver Versuch dies in J. Keine Verwendung der Standardbibliothek, obwohl ich bezweifle, dass sie dadurch kürzer werden würde.
Die Zeile oben ist ein Verb, das eine Ganzzahl nimmt und deren Glück und Ursprünglichkeit als Ausgabezeichenfolge diagnostiziert. Die zweite Zeile ist ein Ausdruck, der die Zeichenfolge zurückgibt
eighty-seven
, während die dritte eine konstante Funktion ist, die dasselbe tut. Ich habe beide eingeschlossen, weil beide möglich waren und weil ich nicht weiß, wie das Urteil über Funktionsantworten im Gegensatz zu Programmantworten lauten wird, und J keine Funktionen ohne Argumente hat - Sie geben einfach eine Funktion a Dummy-Argument.Wir verlieren die meisten Zeichen, die nach Glück suchen.
(,[:+/@:*:,.&.":@{:)
ist der Hauptteil, der die Quadrate der Ziffern einer Zahl summiert, und(1-{:e.}:)
ist der Test, ob diese Zahl bereits aufgetreten ist.sad`happy{~1 e.
verwandelt dies in ein Wortergebnis, und wir hängen es an die Vorderseite der Zeichenfolge annon-prime
und schneiden möglicherweise vier Zeichen ab, wenn die Zahl tatsächlich eine Primzahl war.Im Anagramm verstecken wir einfach alle Bits, die nicht
'eighty-seven'
in einer Zeichenfolge enthalten sind, die wir ignorieren. Ich könnte es besser machen, wenn J mehr Buchstaben zur Wiederverwendung hätte, aber das tut es nicht, also na ja.quelle