CJam, 80 49 48 ตัวอักษร
ปรับปรุง : แรงบันดาลใจจากการใช้งานของเดนนิสในการคำนวณผลรวมของตัวเลขสองหลักนี่คือรุ่นที่สั้นกว่า
Happy / Sad Prime / Non-prime:
ri:T{Ab2f#:+}G*X="happy""sad"?STmp4*"non-prime">
มันทำงานอย่างไร:
ri:T "Read input as integer and store it in T"
{ }G* "Run this code block 16 times"
Ab "Convert the number into base 10"
2f# "Calculate square of each digit"
:+ "Sum all the squared digits and put the sum on stack"
X= "Compare the sum after 16th iteration to 1"
"happy""sad"? "If sum is 1, put `happy` to stack, otherwise `sad`"
ST "Put space on stack then put the value of T on stack"
mp4* "Put 4 to stack if input is prime, otherwise 0"
"non-prime"> "Put `non-prime` to stack and slice out first four characters if the input number is prime"
สี่สิบแปด
""A"forTy-eiGhT""ri:{b2#:+}*X=appsadSmp4*nnpm>"?
มันทำงานอย่างไร:
"" "Push empty string to stack"
A "Push 10 to stack"
"forTy-eiGhT" "Push `forTy-eiGhT` to stack"
"ri:....pm>" "Push this string to stack too"
? "Keep `forTy-eiGhT` on stack and pop the other string"
ลองออนไลน์
โปรแกรมแรกอ่านหมายเลขจาก STDIN
โซลูชัน 80 ตัวอักษรดั้งเดิมของฉัน
Happy / Sad Prime / Non-prime:
r:N{1/~]{i_*T+:T;}/T_s\1=:H!X):XK<&0:T;}g;H"happy""sad"?SNimp"prime"_"non-"\+?:Y
แปดสิบ
"eigHTY""r:N{1/~]{i_*T+:T}/_s\1=:H!X):XK<&0:T}happysad?SNmp";"prim_";"non-\?:+";
/*program1*/program2
แล้วprogram1/*program2*/
? ฉันคิดว่าคุณไม่ควรแสดงความคิดเห็น