Corso di Raku / Appendice 🆕 / Lavorare con i dati / Numeri e matematica / Exercises / Numeri perfetti
Soluzione: Numeri perfetti
Ecco una possibile soluzione del compito.
Codice
my @perfect = (1..30).grep: -> $n {
$n == [+] (1..^$n).grep($n %% *)
};
say @perfect;🦋 Trova il programma nel file perfect-numbers.raku.
Output
[6 28]Commenti
(1..^$n).grep($n %% *)conserva i numeri sotto$nche lo dividono esattamente — i suoi divisori propri. Il%% *è una funzione Whatever che verifica la divisibilità.[+]somma quei divisori, e ilgrepesterno conserva solo i numeri uguali a quella somma.