Heres a good puzzle: how do you write a program which produces its own source code as output?
It is actually quite difficult to write a self-reproducing program that is truly portable, due particularly to quoting and character set difficulties. Here is a classic example (which ought to be presented on one line, although it will fix itself the first time it’s run): char*s=”char*s=%c%s%c;main(){printf(s,34,s,34);}”; main(){printf(s,34,s,34);} (This program has a few deficiencies, among other things neglecting to #include