perl -Mstrict -Mwarnings -le 'my $n = shift or die qq{Requires 1 number argument.}; my $o = $n; my @f = (); my $i = 2; while ( $n % $i == 0 ) { push @f, $i; $n /= $i; } $i++; while ( $n >= $i ) { while ( $n % $i == 0 ) { push @f, $i; $n /= $i; } if ( $n > $i ) { $i += 2; } } print $o, q{ = }, join q{*}, @f;'