Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Mathematische Funktionen - BEITRAG: Ermittlung von Primzahlen


Aufgabe
Folgende Formeln geben an, ob die Zahl in A1 eine Primzahl ist.

Lösung
Ab 3 bis 65.536 = 2^16 (max. Zeilenzahl):
{=WENN(SUMME(WENN(REST(A1;ZEILE(INDIREKT("2:"&A1-1)));0;1));"";"Primzahl")}

Kürzer mit Verdoppelung auf 131.072 = 2^17 - und die 2 wird als Primzahl erkannt:
{=WENN(KKLEINSTE(REST(A1;ZEILE(A:A));3);"Primzahl";"")}
ohne Abschluß als Arrayformel:
=WENN(SUMMENPRODUKT((REST(A1;ZEILE(A:A))=0)*1)>2;"";"Primzahl")

Ab 3 bis ca. 268 Millionen (2^28-1):
{=WENN(SUMME(WENN(REST(A1;ZEILE(INDIREKT("2:"&AUFRUNDEN(A1^0,5;0))));0;1));"";"PRIMZAHL")}

Ab 7 bis etwas über 17 Milliarden (ca. 2^34) bei Ersatz der Funktion REST:
{=WENN(GANZZAHL(A1/2)<>A1/2;WENN(SUMME((GANZZAHL(A1/(ZEILE(INDIREKT("2:"&AUFRUNDEN(A1^0,5/2;0)+1))*2-1))=A1/(ZEILE(INDIREKT("2:"&AUFRUNDEN(A1^0,5/2;0)+1))*2-1))*1);"";"Primzahl");"")}

Erläuterung
Excel-bug: die Funktion REST gibt den Geist auf, wenn das Ergebnis der Division >= 2^27 ist.
=REST(2^28-1;2) wird noch berechnet; =REST(2^28;2) ergibt #WERT!

Bei neueren Excelversionen erhöht sich die Begrenzung auf 1.048.576
(Maximale Zeilenzahl: 2^20 statt 2^16)