J - 87 karakter
J bu konuda naif bir girişim Standart kütüphanenin hiçbir faydası yok, ama ben bunu kullanarak herhangi bir kısalır şüpheliyim.
((sad`happy{~1 e.(,[:+/@:*:,.&.":@{:)^:(1-{:e.}:)^:_);@,' ';'gtv]non-prime'}.~4+4*1&p:)
'((ad`app{~1 .(,[:+/@:*:,.&.":@{:)^:(1-{:.}:)^:_);@, ;onprm}.~4+4*1&p:)']'eighty-seven'
('(ad`app{~1 .(,[:+/@:*:,.&.:@{:)^:(1-{:.}:)^:);@, ;onprm}.~4+4*1&p:']'eighty-seven'"_)
Üstteki çizgi, bir tamsayıyı alıp mutluluğunu ve önceliğini çıktı dizesi olarak teşhis eden bir fiildir. İkinci satır, dizeyi döndüren bir ifadedir eighty-seven
, üçüncüsü ise bunu yapan sabit bir işlevdir. Her ikisini de dahil ettim çünkü ikisi de mümkün oldu ve programın aksine fonksiyon cevaplarında iktidarın ne olacağını bilmediğim için ve J'nin argüman olmayan fonksiyonlar gibi bir şeyi yok - sadece bir fonksiyon kukla argüman.
Mutlulukları kontrol eden karakterlerin çoğunu kaybediyoruz. (,[:+/@:*:,.&.":@{:)
bir sayının basamaklarının karelerini toplayan ana gövdedir ve (1-{:e.}:)
bu sayının henüz oluşup oluşmadığının testidir. sad`happy{~1 e.
bunu bir kelime sonucuna dönüştürür ve bunu dizenin önüne non-prime
ekleriz, sayı gerçekten asaliyse potansiyel olarak dört karakteri keseriz.
Anagramda, 'eighty-seven'
görmezden geldiğimiz bir dizede olmayan tüm bitleri gizliyoruz . J'nin yeniden kullanmak için daha fazla harfi olsaydı daha iyisini yapabilirdim, ama öyle değil, o kadar iyi.
/*program1*/program2
ve sonraprogram1/*program2*/
? Bence yorumlara izin vermemelisin.