Vollkommene Zahlen

By | 16. Oktober 2017

Vollkommene Zahlen sind diejenigen positiven ganzen Zahlen, die mit der Summe ihrer echten Teiler übereinstimmen. Echte Teiler einer Zahl sind alle Teiler ohne die Zahl selbst. D.h. die Teiler der Zahl 6 sind {1,2,3,6}, die Menge der echten Teiler ist {1,2,3}. Bildet man die Summe der echten Teiler und stimmt sie mit der Zahl überein so hat man eine vollkommene Zahl. Die erste vollkommene Zahl ist demnach die Zahl 6.

Mit Hilfe der funktionalen Programmierung wie sie mit der Wolfram Language möglich ist, kann man sich leicht auf die Suche nach diesen Zahlen machen.

Die eingebaute Funktion Divisors[n] liefert uns die Teiler der Zahl n.

    \[Divisors[6] = {1,2,3,6}\]

    \[Apply[Plus,{1,2,3}] =6\]

Um nun eine Liste der echten Teiler zu bekommen, schreiben wir eine neue Funktion:

    \[properDiv[n\_{} ]:=Drop[Divisors[n],-1]\]

Damit erhalten wir die benötigte Liste der echten Teiler:

    \[properDiv[6] = {1,2,3}\]

Mit dieser Liste lässt sich nun die Summe der echten Teiler automatisch berechnen, in dem die Funktionen konkateniert (verkettet) werden.

    \[Apply[Plus,properDiv[n]] =6\]

Nun müssen wir noch eine weitere Funktion schreiben, die überprüf,t ob die Summe der Teiler gleich der Zahl ist oder nicht.

    \[perfectQ[n\_{}]:=Apply[Plus, properDiv[n]]==n\]

Die Funktion perfectQ liefert den Wert true wenn die Bedingung erfüllt ist, ansonsten liefert sie false. Damit haben wir fast alle Bausteine zusammen, um einen Bereich von Zahlen zu untersuchen.

Die Funktion Range[n] erzeugt eine Liste mit natürlichen Zahlen, die zwischen 1 und n liegen. Wir interessieren uns nun für genau die Zahlen, die den perfectQ-Test bestehen.

Dazu verwenden wir die Select[list, crit]-Funktion. Sie gibt nur genau die Elemente einer Liste zurück, für die das angegebene Kriterium crit wahr ist. Somit erhalten wir mit

    \[perfect[n\_{}]:=Select[Range[n],perfectQ]\]

genau die von uns gesuchten vollkommenen Zahlen.Um beispielsweise alle vollkommenen Zahlen zwischen 1 und 10000 zu ermitteln geben wir nun in Mathematica folgende Zeile ein:

    \[perfect[10000]\]

und erhalten

    \[{6,28,496,8128}\]

 

Die ersten vier vollkommenen Zahlen 6, 28, 496 und 8128 waren bereits den alten Griechen bekannt. EUKLID (um 300 v. Chr.) geht im neunten Buch seiner Elemente auf diese Zahlen ein. Er formulierte folgenden Satz:

Ist für eine natürliche Zahl n die Zahl p = 1 + 2 + 4 +…+ 2eine Primzahl, dann ist p\cdot 2^n eine vollkommene Zahl.

Die  Zahl p=1+2+4+8+16 = 31 ist eine Primzahl, weshalb entsprechend Euklids Behauptung 31·16=496 eine vollkommene Zahl ist.

Euklid bewies, dass 2^{(p-1)}\cdot (2^p -1) immer dann eine vollkommene Zahl ist, wenn (2^p -1) eine Primzahl ist.

p=2:  2^1 (2^2 – 1) = 6 = 1+2+3

p=3:  2^2 (2^3 – 1) = 28 = 1+ 2+ 4 + 7 + 14

p=5:  2^4 (2^5 – 1) = 496 = 1 + 2 + 4 + 8 + 16+ 31 +62 + 124 + 248

p=7:  2^6 (2^7 – 1) = 8128

usw…

Es ist nicht bekannt, ob es unendlich viele vollkommene Zahlen gibt. Ebenso ist nicht bekannt, ob es nur gerade oder auch ungerade vollkommene Zahlen gibt.