sub e{ #234567890123456789012345678901234567890123456789012 @e=(1)x pop;map{map{$e[$_-1]+=$e[$_]/$_;$e[$_]=10*($ e[$_]%$_)}reverse 1..$#e;print int$e[0];$e[0]=0}1..@e } # or if you prefer whitespace and no void maps sub e{ @e=(1)x pop; for(1..@e){ for(reverse(1..$#e)){ $e[$_-1]+=$e[$_]/$_; $e[$_]=10*($e[$_]%$_) } print int $e[0]; $e[0]=0 } }