use strict; sub find_factors { my $number = shift; my $factors = shift; my $try; my $finished = 0; for ($try = 2; !$finished && ($try <= sqrt($number)); $try ++) { if (($number % $try) == 0) { push @{$factors}, $try; find_factors($number / $try, $factors); $finished = 1; } } if (!$finished) { push @{$factors}, $number; } } my $factors = []; find_factors(1024, $factors); print join(",", @{$factors});