All pastes #674669 Raw Edit

Miscellany

public text v1 · immutable
#674669 ·published 2007-08-29 13:21 UTC
rendered paste body
use 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);