24 lines
551 B
Perl
24 lines
551 B
Perl
use strict;
|
|
use warnings;
|
|
use ntheory qw/factorial todigits/;
|
|
|
|
my $limit = 1500000;
|
|
|
|
for my $b (9 .. 12) {
|
|
print "Factorions in base $b:\n";
|
|
$_ == factorial($_) and print "$_ " for 0..$b-1;
|
|
|
|
for my $i (1 .. int $limit/$b) {
|
|
my $sum;
|
|
my $prod = $i * $b;
|
|
|
|
for (reverse todigits($i, $b)) {
|
|
$sum += factorial($_);
|
|
$sum = 0 && last if $sum > $prod;
|
|
}
|
|
|
|
next if $sum == 0;
|
|
($sum + factorial($_) == $prod + $_) and print $prod+$_ . ' ' for 0..$b-1;
|
|
}
|
|
print "\n\n";
|
|
}
|