FF PP ZZ by

a=[*1...n=eval(*$<)]
a.map{|x|puts" "+a.map{|y|"%2s"%(x*y).to_s(n).upcase}*" "}

Note that non-ascii characters in the above source code will be escaped (such as \x9f).

download

return top