Miscellany
public text v1 · immutableuse Math::BigInt;
my $m = Math::BigInt->new("317584931803");
my $n=1000000; # $n*$n>$m
my @c; # $c[$k]==1 for $k composite, 2<=$k<=$n
# sieve to find primes + brute force factor
while ($m % 2 == 0) {
print "2\n";
$m = $m/2;
}
for ($j=2;$j<=$n/2;$j++) {
$c[2*$j] = 1;
}
for ($i=3;$i<$n;$i+=2) {
if (!$c[$i]) {
while ($m % $i==0) {
print "$i\n";
$m = $m/$i;
}
if ($i*$i<=$n) {
for ($j=2;$j<=$n/$i;$j++) {
$c[$i*$j] = 1;
}
}
}
}
print "$m\n" if ($m>1);