Kurso de Raku / Aldono 🆕 / Labori kun datumoj / Nombroj kaj matematiko / Exercises / Malkomponado en primfaktorojn

Solvo: Malkomponado en primfaktorojn

Jen ebla solvo de la tasko.

Kodo

my $n = 360;
my @factors;

for 2..$n -> $d {
    while $n %% $d {
        @factors.push($d);
        $n div= $d;
    }
}

say @factors;

🦋 Vi povas trovi la fontkodon en la dosiero prime-factors.raku.

Eligo

[2 2 2 3 3 5]

Komentoj

  1. Por ĉiu kandidata divizoro $d, la interna while eldividas ĝin el $n tiom da fojoj, kiom ĝi eniras, puŝante $d ĉiufoje. Ĉar la pli malgrandaj faktoroj estas forigataj unue, ĉiu $d, kiu ankoraŭ dividas $n, estas garantiite prima.

  2. $n div= $d estas entjera divido reen en $n; ĝi malgrandigas la nombron, ĝis restas nenio krom 1.

Kursa navigado

Malkomponado en primfaktorojn   |   Plej granda komuna divizoro kaj plej malgranda komuna oblo