my @primes = (2..*).grep(*.is-prime);
sub factorization(Int $N) {
my $prime-index = 0;
my $n = $N;
gather do while $n > 1 {
if $n %% @primes[$prime-index] {
take @primes[$prime-index];
$n div= @primes[$prime-index];
} else {
$prime-index++;
}
}
}
sub factor($n) {
my @factors = factorization($n);
say "$n has prime factors { @factors.join(" ") }";
if $n != [*] @factors {
note "We've got a big problem: $n vs { [*] @factors }";
}
}
factor(41412);