0 Daumen
809 Aufrufe

Ich kenne zwar den
de.wikipedia.org/wiki/Satz_von_Wilson
aber da geht es nur um Primzahlen.

Es geht auch nicht um speziell dieses Beispiel, sondern um große Zahlen, wo man das Zwischernergebnis nicht so einfach berechnen kann.

Ich kenne auch den Algorithmus für die Anzahl der Nullen am Ende von x!, aber wie hilft das weiter?

Da WolframAlpha das Ergebnis in unter 1s liefert, muss es was interessantes geben...

Avatar von 5,7 k

2 Antworten

+1 Daumen
 
Beste Antwort

Für einen Computer ist das kein Problem. Anbei ein C++-Code-Schnipsel:

    auto erg = int64_t(1);
    for( int i= 177778; i>1; --i )
        (erg *= i) %= 123477767;
    cout << erg << endl;

liefert in <1s den Wert 23358699. Der 'Trick' besteht halt darin, die Modulo-Funktion nach jeder Multiplikation aufzurufen.

Avatar von 48 k

Ja Werner, so etwas suchte ich - danke.

http://www.lamprechts.de/gerd/Roemisch_JAVA.htm##@Na=177778;b=a-1;c=123477767;d=a%25c;IM=1;@Nd=(d*b)%25c;b--;@Nb%3C2@N0@N0@N#

ergibt nach START in Variable d auch 23358699.

Hier noch ein anderes Beispiel:

Bild Mathematik

Nur kann ich Den Kommentar nicht bewerten wie eine Antwort...

EDIT: Habe den Kommentar von Werner zu einer Antwort gemacht.

+1 Daumen
Habe 23 358 699 heraus. Gerechnet in Haskell in ca. einer Minute mit einem schlechten Prozessor. Dann traue ich Wolfram Alpha die Berechnung unter einer Sekunde auch ohne speziellen Algorithmus zu
Avatar von 8,7 k

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community