J - 87 char
Upaya naif ini di J. Tidak menggunakan perpustakaan standar, meskipun saya ragu itu akan menjadi lebih pendek dengan menggunakan itu.
((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'"_)
Baris di atas adalah kata kerja yang mengambil bilangan bulat dan mendiagnosis kebahagiaan dan keutamaannya sebagai string keluaran. Baris kedua adalah ekspresi yang mengembalikan string eighty-seven
, sedangkan yang ketiga adalah fungsi konstan melakukan hal yang sama. Saya memasukkan keduanya karena keduanya mungkin dan karena saya tidak tahu apa putusannya pada jawaban fungsi yang berlawanan dengan jawaban program, dan J tidak memiliki fungsi tanpa argumen — Anda hanya memberi fungsi a argumen bodoh.
Kita kehilangan sebagian besar karakter untuk memeriksa kebahagiaan. (,[:+/@:*:,.&.":@{:)
adalah badan utama yang menjumlahkan kuadrat dari angka, dan (1-{:e.}:)
merupakan ujian apakah angka itu telah terjadi. sad`happy{~1 e.
mengubah ini menjadi hasil kata, dan kami lampirkan itu di bagian depan string non-prime
, berpotensi memotong empat karakter jika angka itu sebenarnya prima
Dalam anagram kita hanya menyembunyikan semua bit yang tidak ada 'eighty-seven'
dalam string yang kita abaikan. Saya bisa melakukan lebih baik jika J memiliki lebih banyak surat untuk digunakan kembali, tetapi tidak, jadi oh well.
/*program1*/program2
dan kemudianprogram1/*program2*/
? Saya pikir Anda harus melarang komentar.