J - 87 char
Một nỗ lực ngây thơ về điều này trong J. Không sử dụng thư viện tiêu chuẩn, mặc dù tôi nghi ngờ nó sẽ ngắn hơn bằng cách sử dụng nó.
((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'"_)
Dòng trên cùng là một động từ lấy một số nguyên và chẩn đoán hạnh phúc và tính nguyên thủy của nó là một chuỗi đầu ra. Dòng thứ hai là một biểu thức trả về chuỗi eighty-seven
, trong khi dòng thứ ba là hàm hằng làm tương tự. Tôi bao gồm cả hai vì cả hai đều có thể và vì tôi không biết phán quyết nào sẽ là câu trả lời cho chức năng trái ngược với câu trả lời của chương trình và J không có chức năng nào giống như chức năng không tranh luận. Bạn chỉ cần đưa ra chức năng tranh luận giả.
Chúng tôi mất hầu hết các ký tự kiểm tra cho hạnh phúc. (,[:+/@:*:,.&.":@{:)
là phần chính tính tổng bình phương của các chữ số của một số và (1-{:e.}:)
là phép thử xem liệu số đó đã xảy ra chưa. sad`happy{~1 e.
biến điều này thành kết quả từ và chúng tôi gắn nó vào phía trước chuỗi non-prime
, có khả năng cắt bỏ bốn ký tự nếu số đó thực sự là số nguyên tố.
Trong đảo chữ cái, chúng ta chỉ ẩn tất cả các bit không có 'eighty-seven'
trong chuỗi mà chúng ta bỏ qua. Tôi có thể làm tốt hơn nếu J có nhiều chữ cái để sử dụng lại, nhưng nó không, vậy thì tốt quá.
/*program1*/program2
và sau đóprogram1/*program2*/
? Tôi nghĩ bạn không nên cho phép bình luận.