RosettaCodeData/Task/Prime-decomposition/Perl/prime-decomposition-4.pl
2015-02-20 00:35:01 -05:00

13 lines
325 B
Perl

use Math::Pari qw/:int factorint isprime/;
# Convert Math::Pari's format into simple vector
sub factor {
my ($pn,$pc) = @{Math::Pari::factorint(shift)};
map { ($pn->[$_]) x $pc->[$_] } 0 .. $#$pn;
}
for (100 .. 150) {
next unless isprime($_);
my $p = 2 ** $_ - 1;
print "2^$_-1: ", join(" ", factor($p)), "\n";
}