1行素因数分解

ふと気になって調べてみたけどワンライナーがあまり見つからなかったので自分で考えてみた

perl -e 'sub f{return $a if ($a=$_[0]) < 3; $a%$_ or print f($a/$_),"*$_" and return for (2..$a-1); $a} f(shift)' 2009

2時間近く相当悩みながら短くしていったつもりだけどこれ以上は思いつかなかった…