Raku-Kurs / Anhang 🆕 / Arbeiten mit Daten / Zahlen und Mathematik / Exercises / Vollkommene Zahlen

Lösung: Vollkommene Zahlen

Hier ist eine mögliche Lösung der Aufgabe.

Code

my @perfect = (1..30).grep: -> $n {
    $n == [+] (1..^$n).grep($n %% *)
};

say @perfect;

🦋 Du findest den Quellcode in der Datei perfect-numbers.raku.

Ausgabe

[6 28]

Kommentare

  1. (1..^$n).grep($n %% *) behält die Zahlen unterhalb von $n, die es ohne Rest teilen — seine echten Teiler. Das %% * ist eine Whatever-Funktion, welche die Teilbarkeit prüft.

  2. [+] summiert diese Teiler, und das äußere grep behält nur die Zahlen, die dieser Summe gleichen.

Kursnavigation

Vollkommene Zahlen   |   Primfaktorzerlegung