Corso di Raku / Appendice 🆕 / Lavorare con i dati / Numeri e matematica / Exercises / Fattorizzazione in numeri primi

Soluzione: Fattorizzazione in numeri primi

Ecco una possibile soluzione del compito.

Codice

my $n = 360;
my @factors;

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

say @factors;

🦋 Trova il programma nel file prime-factors.raku.

Output

[2 2 2 3 3 5]

Commenti

  1. Per ogni divisore candidato $d, il while interno lo divide fuori da $n tante volte quante ci sta, spingendo ogni volta $d. Poiché i fattori più piccoli vengono rimossi per primi, ogni $d che divide ancora $n è con certezza primo.

  2. $n div= $d è una divisione intera che torna in $n; restringe il numero finché non resta altro che 1.

Fattorizzazione in numeri primi   |   Massimo comune divisore e minimo comune multiplo