# 288 characters (excluding trailing \n) sub l{length$_[0]};sub p{$x=int rand($n=10**$d);$y=int rand($n);$z=$x+$y;@a=();for(0..9){while(defined $a[$n=rand(10)]){};$a[$n]=chr(65+$_);}$n=2+l$z;$"='';print map{eval"y/0-9/@a/";$_}(' 'x($n- l$x),"$x + ",' 'x($n-2- l$y),"$y ",'-'x$n," $z ");}$d=shift||4;$q=shift||1;p$d for(1..$q);