Всеми (с точностью до перестановок) возможными способами разбивает число на множители. Множители выводятся в порядке возрастания.
Дайош fork на замену рекурсии!
- Код: Выделить всё
#!/usr/bin/perl
($N=shift) or die ("usage: factorize.pl N\n");
factorize($N);
sub factorize {$N=shift;
my @factors, $i;
for ($i=2; $i<$N; $i++) {
unless (($N%$i)||fork) {
push @factors, $i;
$N/=$i;
exit if ($N<$i--);
}
}
print join('*',@factors, "$N\n");
}