Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Mathematische Funktionen

Beitrag: Ermittlung der Summe und der Anzahl der Teiler einer Zahl

Aufgabe
Wie kann man die Teilersumme einer Zahl X aller Teiler kleiner X ermitteln. Beispiel 12
1+2+3+4+6=16

Klappt bis ca. 134 Mio
Lösung
Die Zahl steht in A1

einfache Variante bis 65.536
{=SUMME(WENN(REST(A1;ZEILE(INDIREKT("1:"&A1)))=0;ZEILE(INDIREKT("1:"&A1))))-A1}
oder mit INDEX statt INDIREKT:
{=SUMME(WENN(REST(A1;ZEILE(A1:INDEX(A:A;A1)))=0;ZEILE(A1:INDEX(A:A;A1))))-A1}

Variante bis ca. 134 Mio
{=SUMME(WENN(REST(A$1;ZEILE(INDIREKT("1:"&KÜRZEN(A$1^0,5))))=0;ZEILE(INDIREKT("1:"&KÜRZEN(A$1^0,5)))+A1/ZEILE(INDIREKT("1:"&KÜRZEN(A$1^0,5)))))-(REST(A1^0,5;1)=0)*A1^0,5-A1}
oder
{=SUMME(WENN(REST(A$1;ZEILE(A1:INDEX(A:A;KÜRZEN(A1^0,5))))=0;ZEILE(A1:INDEX(A:A;KÜRZEN(A1^0,5)))+A1/ZEILE(A1:INDEX(A:A;KÜRZEN(A1^0,5)))))-(REST(A1^0,5;1)=0)*A1^0,5-A1}

die Anzahl der Teiler (mit der Zahl selbst) erhält man mit:
=SUMMENPRODUKT((REST(A1;ZEILE(INDIREKT("1:"&A1)))=0)*1)
oder
=SUMMENPRODUKT((REST(A1;ZEILE(A1:INDEX(A:A;A1)))=0)*1)
bis 134 Mio:
=SUMMENPRODUKT((REST(A1;ZEILE(INDIREKT("1:"&KÜRZEN(A1^0,5))))=0)*2)-(REST(A1^0,5;1)=0)

oder
=SUMMENPRODUKT((REST(A1;ZEILE(A1:INDEX(A:A;KÜRZEN(A1^0,5))))=0)*2)-(REST(A1^0,5;1)=0)

Erläuterung
Eine Zahl ist entweder abundant, defizient oder vollkommen.
Sie ist abundant, wenn die Summe ihrer Teiler größer ist, als die Zahl selbst. Sie ist defizient, wenn die Summe ihrer Teiler kleiner ist als die Zahl selbst. Sie gilt als vollkommen, wenn Sie genauso groß ist, wie ihre Teilersumme.

Wenn die Summe in B1 steht, erhältst Du die Information mit:
=WENN(B1 > A1;"abundant";WENN(B1 < A1;"defizient"&WENN(B1=1;" (Primzahl)";"");"vollkommen"))

24 > abundant
26 > defizient
28 > vollkommen