Gunnar Bittersmann: Mathematik zum Wochenende

Lange nicht mehr gehabt, deshalb hab ich mal wieder nach einer Aufgabe gesucht – und zwei gefunden. Hat diesmal nichts mit Geometrie zu tun:

  1. Auf wieviele Nullen endet die Zahl 2019! = 1 · 2 · 3 · … · 2019?

  2. Auf welche zwei Ziffern endet die Zahl 2019²⁰¹⁹?

LLAP 🖖

--
„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
  1. Hallo Gunnar Bittersmann,

    Lange nicht mehr gehabt, deshalb hab ich mal wieder nach einer Aufgabe gesucht

    So was ähnliches ging mir gestern auch durch den Kopf: Es gibt beliebig große Lücken zwischen den Primzahlen (siehe https://link.springer.com/chapter/10.1007%2F978-3-322-96836-4_4 (preview), Satz 2). Damit ergibt sich als Lücke von fünf das Intervall [722;726]. Eine solche Lücke taucht aber schon viel früher auf, nämlich zwischen 23 und 29.

    Aufgabe 1: Finde das kleinste Intervall von 2019 aufeinander folgenden zusammengesetzten Zahlen. (Ich befürchte, dass das die Rechenkapazität irre auslasten wird, und man die Zahlen selbst auch nicht ausschreiben kann 😉)

    Aufgabe 2: Finde den Fehler in Satz 1.

    Bis demnächst
    Matthias

    --
    Pantoffeltierchen haben keine Hobbys.
    ¯\_(ツ)_/¯
    1. Hallo Matthias Apsel,

      Aufgabe 2: Finde den Fehler in Satz 1.

      Natürlich nicht im Satz selbst, sondern im Beweis zum Satz.

      Bis demnächst
      Matthias

      --
      Pantoffeltierchen haben keine Hobbys.
      ¯\_(ツ)_/¯
      1. @@Matthias Apsel

        Aufgabe 2: Finde den Fehler in Satz 1.

        Natürlich nicht im Satz selbst, sondern im Beweis zum Satz.

        Hm, wo steckt er denn?

        LLAP 🖖

        --
        „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
        1. Hallo Gunnar Bittersmann,

          Hm, wo steckt er denn?

          Die konstruierte Zahl muss nicht selbst eine neue unbekannte Primzahl sein, sie muss nur aus bisher unbekannten Primfaktoren bestehen.

          2 × 3 + 1 = 7
          2 × 3 × 5 + 1 = 31
          2 × 3 × 5 × 7 + 1 = 211
          2 × 3 × 5 × 7 × 11 + 1 = 2311
          2 × 3 × 5 × 7 × 11 × 13 + 1 = 59 × 509

          Ich könnte mir sogar vorstellen, dass sich nur für die ersten 4 Fälle Primzahlen ergeben, habe das aber noch nie getestet.

          Wobei, in diesem Lehrbuch ist es sogar richtig formuliert, da habe ich zu oberflächlich gelesen, sehr häufig habe ich schon die fehlerhafte Schlussfolgerung gesehen.

          Bis demnächst
          Matthias

          --
          Pantoffeltierchen haben keine Hobbys.
          ¯\_(ツ)_/¯
          1. Hallo Matthias Apsel,

            Ich könnte mir sogar vorstellen, dass sich nur für die ersten 4 Fälle Primzahlen ergeben, habe das aber noch nie getestet.

            Nö. 2 × 3 × … × 31 + 1 = 200560490131

            Bis demnächst
            Matthias

            --
            Pantoffeltierchen haben keine Hobbys.
            ¯\_(ツ)_/¯
          2. @@Matthias Apsel

            Hallo Gunnar Bittersmann,

            Hm, wo steckt er denn?

            Die konstruierte Zahl muss nicht selbst eine neue unbekannte Primzahl sein

            Ist sie aber. a lässt bei Division durch p₁ den Rest 1, ebenso bei Division durch p₂, p₃, … Da a also durch keine Primzahl teilbar ist (wir hatten ja angenommen, wir hätten eine Liste mit allen Primzahlen), ist a selbst prim – aber nicht auf der Liste.

            Ungünstig finde ich, dass der Beweis indirekt geführt wird, das aber durch die Formulierung nicht so deutlich wird.

            LLAP 🖖

            --
            „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
            1. Hallo Gunnar Bittersmann,

              Ist sie aber. a lässt bei Division durch p₁ den Rest 1, ebenso bei Division durch p₂, p₃, … Da a also durch keine Primzahl teilbar ist (wir hatten ja angenommen, wir hätten eine Liste mit allen Primzahlen), ist a selbst prim – aber nicht auf der Liste.

              Nein, ist sie nicht. Siehe Beispiele.

              a lässt bei Division durch p₁ den Rest 1, ebenso bei Division durch p₂, p₃, … Da a also durch keine Primzahl teilbar ist …

              aber nach dem Fundamentalsatz der Zahlentheorie mindestens einen Primteiler haben muss, ist sie entweder selbst prim oder hat Primteiler, die nicht in der Liste sind.

              Bis demnächst
              Matthias

              --
              Pantoffeltierchen haben keine Hobbys.
              ¯\_(ツ)_/¯
              1. Hallo Matthias,

                ihr argumentiert für unterschiedliche Dinge.

                Gunnar beweist den Umstand dass es unendlich viele Primzahlen gibt. Dazu nimmt man an, die Menge P sei endlich und würde alle Primzahlen enthalten. Dann multipliziert man die Elemente von P auf, addiert 1 und stellt fest, dass das Ergebnis durch kein Element von p teilbar ist. Es gibt also immer eine Primzahl mehr, P ist gleichmächtig mit den Natürlichen Zahlen, also abzählbar unendlich.

                Der Beweis von Satz 1 verwendet allerdings unterschwellig eine andere Definition von „Primzahl“, nämlich: Eine Zahl ist prim, wenn sie von keinem Element in P geteilt werden kann. Und das ist die Macke am Beweis.

                Matthias liefert ein Beispiel dafür, dass eine endliche Menge Q, deren Elemente Primzahlen sind, beim Multiplizieren aller Elemente von Q und Addition von 1 nicht unbedingt eine Primzahl liefert. Sie kann Primfaktoren enthalten, die kein Element von Q sind.

                Rolf

                --
                sumpsi - posui - clusi
                1. Hallo Rolf B,

                  Gunnar beweist den Umstand dass es unendlich viele Primzahlen gibt. Dazu nimmt man an, die Menge P sei endlich und würde alle Primzahlen enthalten. Dann multipliziert man die Elemente von P auf, addiert 1 […]

                  , nennt diese Zahl a

                  und stellt fest, dass das Ergebnis durch kein Element von P teilbar ist. Es gibt also immer [mindestens] eine Primzahl mehr, P ist gleichmächtig mit den Natürlichen Zahlen, also abzählbar unendlich.

                  Ja, aber diese Zahl ist nicht a.

                  Der Beweis von Satz 1 verwendet allerdings unterschwellig eine andere Definition von „Primzahl“, nämlich: Eine Zahl ist prim, wenn sie von keinem Element in P geteilt werden kann. Und das ist die Macke am Beweis.

                  Nein, das tut er in dieser Veröffentlichung nicht. Aber in vielen anderen, die ich schon gesehen habe.

                  Ich fasse noch mal zusammen.

                  1. Wir wissen, dass jede Zahl > 1 mindestens einen Primfaktor enthält
                  2. Wir nehmen an, es gibt nur endlich viele Primzahlen
                  3. Wir konstruieren eine Zahl, die keine der endlich vielen Primzahlen als Faktor enthält

                  Da diese Zahl aber größer als 1 ist, muss sie mindestens einen Primfaktor enthalten. Wir können nicht schlussfolgern, dass die konstruierte Zahl selbst prim ist.

                  Bis demnächst
                  Matthias

                  --
                  Pantoffeltierchen haben keine Hobbys.
                  ¯\_(ツ)_/¯
  2. @@Gunnar Bittersmann

    1. Auf wieviele Nullen endet die Zahl 2019! = 1 · 2 · 3 · … · 2019?

    Eine Null am Ende ensteht durch Multiplikation einer 2 und einer 5 aus der Primfaktorzerlegung. Da es mehr 2en als 5en als Primfaktoren von 2019! gibt (es gibt mehr gerade Zahlen als durch 5 teilbare Zahlen in der Folge 1, 2, 3, …, 2019; mehr durch 4 teilbare als durch 25 teilbare usw.), ist die Anzahl der Nullen am Ende gleich der Anzahl (dem Exponenten) des Primfaktors 5.

    Die Anzahl der durch 5 teilbaren Zahlen bis 2019 ist $$\lfloor \tfrac{2019}{5} \rfloor$$ (wobei $$\lfloor \rfloor$$ für die nächst kleinere oder gleiche Ganzzahl steht; das was Math.floor() in JavaScript tut).

    Durch 5² = 25 teilbare Zahlen wurden hierin einfach gezählt, tragen aber zwei 5en als Primfaktoren bei. Also muss noch die Anzahl der durch 5² teilbaren Zahlen bis 2019 hinzugezählt werden. Und dann noch jeweils die Anzahl der durch 5³, 5⁴ usw. teilbaren Zahlen.

    Die Anzahl der Nullen ist also:

    $$\sum_{k=1}^\infty \lfloor \tfrac{2019}{5^k}\rfloor$$

    Wegen 5⁵ = 3125 > 2019 kann man bei k = 4 aufhören:

    $$\sum_{k=1}^4 \lfloor \tfrac{2019}{5^k} \rfloor = \lfloor \tfrac{2019}{5} \rfloor + \lfloor \tfrac{2019}{25} \rfloor + \lfloor \tfrac{2019}{125} \rfloor + \lfloor \tfrac{2019}{625} \rfloor$$

    Schnell in die Konsole getippt:
    Math.floor(2019/5) + Math.floor(2019/25) + Math.floor(2019/125) + Math.floor(2019/625)

    502

    Zusatzaufgabe: Welche Ziffer steht als nächstes vor den Nullen?


    2. Auf welche zwei Ziffern endet die Zahl 2019²⁰¹⁹?

    Es gilt 2019²⁰¹⁹ ≡ 19²⁰¹⁹ mod 100.

    Außer über Zahlenkongruenzen bekommt man das hin, indem man die 2019 in einen durch 100 teilbaren Teil und den Rest zerlegt: 2019 = 2000 + 19.

    Binomische Formel: (2000 + 19)²⁰¹⁹ = 2000²⁰¹⁹ + 2019 · 2000²⁰¹⁸ · 19 + … + 2019 · 2000 · 19²⁰¹⁸ + 19²⁰¹⁹

    Alle Summanden bis auf den letzten sind durch 100 teilbar, tragen also nichts zu den letzten beiden Stellen bei. 2019²⁰¹⁹ endet auf dieselben zwei Stellen wie 19²⁰¹⁹.

    Schauen wir uns die letzten zwei Stellen von 19 an:

    19⁰ = 1
    19¹ = 19
    19² = …61
    19³ = …59
    19⁴ = …21
    19⁵ = …99
    19⁶ = …81
    19⁷ = …39
    19⁸ = …41
    19⁹ = …79
    19¹⁰ = …01
    19¹¹ = …19

    Ein Zyklus der Länge 10. 19²⁰¹⁹ und damit auch 2019²⁰¹⁹ endet also auf dieselben zwei Stellen wie 19⁹: auf die Ziffern 79.

    LLAP 🖖

    --
    „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
    1. Hallo,

      79.

      Hey! Da war ich mit meiner geratenen 81 gar nicht so weit weg! :)

      Gruß
      Kalk

    2. Hallo Gunnar,

      man könnte für diejenigen, die in Modulorechnung nicht so tief drinstecken, vielleicht noch hinzufügen, dass die letzten n Stellen eines Produkts immer nur von den letzten n Stellen der Faktoren abhängen. Die Begründung ist eine Rechenregel des Modulo-Operators, bzw. lässt sich genauso begründen wie deine Aufteilung von 2019 in 2000+19:

      Sei $$p = t\cdot 10^n + r$$ und $$q=u\cdot 10^n + s$$ mit $$r,s \in [0, 10^n[$$.

      Dann ist: $$pq = (t\cdot 10^n + r)(u\cdot 10^n + s) = tu\cdot 10^{2n}+(ts+ru)\cdot 10^n + rs$$.

      t und u wirken sich wegen des Faktors $$10^n$$ nicht auf die letzten n Stellen aus. Der Beweis dieser Aussage sei als leichte Übung dem Leser überlassen 😂.


      Da Du auf meine Post nicht reagiert hast: Wie lange möchtest du noch warten, bis man einen Lösungsversuch zur Zusatzaufgabe posten darf?

      Rolf

      --
      sumpsi - posui - clusi
      1. @@Rolf B

        Da Du auf meine Post nicht reagiert hast: Wie lange möchtest du noch warten, bis man einen Lösungsversuch zur Zusatzaufgabe posten darf?

        Ich knoble noch. Aber es wird ja niemand gezwungen, deine Lösung zu lesen.

        LLAP 🖖

        --
        „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
        1. Hallo Gunnar,

          DU knobelst noch. Ok ok - ich halte mich zurück.

          Rolf

          --
          sumpsi - posui - clusi
    3. @@Gunnar Bittersmann

      Zusatzaufgabe: Welche Ziffer steht als nächstes vor den Nullen?

      Ich hab ewig nach einer klugen Lösung gesucht – mir ist nur keine eingefallen. Also mit brutaler Kraft die Exponenten aller Primfaktoren von 2019! ermittelt – genauso wie für die 5en:

      $$\sum_{k=1}^\infty \lfloor \tfrac{2019}{5^k}\rfloor$$

      Wegen 5⁵ = 3125 > 2019 kann man bei k = 4 aufhören:

      $$\sum_{k=1}^4 \lfloor \tfrac{2019}{5^k} \rfloor = \lfloor \tfrac{2019}{5} \rfloor + \lfloor \tfrac{2019}{25} \rfloor + \lfloor \tfrac{2019}{125} \rfloor + \lfloor \tfrac{2019}{625} \rfloor$$

      $$\sum_{k=1}^\infty \lfloor \tfrac{2019}{2^k}\rfloor = \sum_{k=1}^{10} \lfloor \tfrac{2019}{2^k}\rfloor = \lfloor \tfrac{2019}{2} \rfloor + \lfloor \tfrac{2019}{4} \rfloor + \lfloor \tfrac{2019}{8} \rfloor + \cdots + \lfloor \tfrac{2019}{1024} \rfloor$$

      $$\sum_{k=1}^\infty \lfloor \tfrac{2019}{3^k}\rfloor = \sum_{k=1}^6 \lfloor \tfrac{2019}{3^k}\rfloor = \lfloor \tfrac{2019}{3} \rfloor + \lfloor \tfrac{2019}{9} \rfloor + \lfloor \tfrac{2019}{27} \rfloor + \cdots + \lfloor \tfrac{2019}{729} \rfloor$$

      Die Exponenten auszurechnen kann ein Script besser (Codepen):

      const primes = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, ..., 2017];
      
      const exponents = primes.map(prime => {
      	let sum = 0;
      	
      	for (let denominator = prime; denominator <= 2019; denominator *= prime)
      	{
      		sum += Math.floor(2019/denominator);
      	}
      	
      	return sum;
      });
      
      console.log(exponents); // [2011, 1005, 502, 334, 200, 166, 124, 111, 90, 71, ...]
      

      Die Primfaktoren von 2019! sind also:

      $$2019! = 2^{2011} \cdot 3^{1005} \cdot 5^{502} \cdot 7^{334} \cdot 11^{200} \cdot 13^{166} \cdot 17^{124} \cdot 19^{111} \cdot 23^{90} \cdot 29^{71} \cdot \dotsc \cdot 2017$$

      Sei s die Zahl, die übrig bleibt, wenn man bei 2019! rechts die 502 Nullen abtrennt. Wir suchen nun die letzte Stelle von s.

      $$\begin{align} s = \frac{2019!}{10^{502}} = 2^{2011-502} &\cdot 3^{1005} \cdot 7^{334} \cdot 11^{200} \cdot 13^{166} \cdot 17^{124} \cdot 19^{111} \cdot 23^{90} \cdot 29^{71} \cdot \dotsc \cdot 2017
      \equiv 2^{1509} &\cdot 3^{1005} \cdot 7^{334} \cdot \ \ 1^{200} \cdot \ \ 3^{166} \cdot \ \ 7^{124} \cdot \ \ 9^{111} \cdot \ \ 3^{90} \cdot \ \ 9^{71} \cdot \dotsc \cdot \ \ \ \ \ \ 7 \mod 10
      \equiv 2^{1509} &\cdot 3^{1005 + 166 + 90 + \dotsc} \cdot 7^{334 + 124 + \dotsc} \cdot 9^{111 + 71 + \dotsc} \mod 10 \end{align}$$

      Die auf 1 endenden Primfaktoren haben keinen Einfluss auf die letzte Stelle von s. Das Zusammenzählen der Exponenten der auf 3, 7 bzw. 9 endenden Primfaktoren kann das Script wieder besser:

      let exp3 = 0, exp7 = 0, exp9 = 0;
      
      primes.forEach((prime, index) => {
      	const primeString = prime.toString();
      	if      (primeString.endsWith('3')) exp3 += exponents[index];
      	else if (primeString.endsWith('7')) exp7 += exponents[index];
      	else if (primeString.endsWith('9')) exp9 += exponents[index];
      });
      
      console.log(exp3, exp7, exp9); // 1618 835 467
      

      $$\begin{align} s &\equiv 2^{1509} \cdot 3^{1618} \cdot 7^{835} \cdot 9^{467}\mod 10
      \end{align}$$

      Die 2er-Potenzen enden auf 2, 4, 8, 6, 2, … – ein Zyklus der Länge 4.
      Die 3er-Potenzen enden auf 3, 9, 7, 1, 3, … – ein Zyklus der Länge 4.
      Die 7er-Potenzen enden auf 7, 9, 3, 1, 7, … – ein Zyklus der Länge 4.
      Die 9er-Potenzen enden auf 9, 1, 9, 1, 9, … – ein Zyklus der Länge 2.

      $$\begin{align} s &\equiv 2^{1509} \cdot 3^{1618} \cdot 7^{835} \cdot 9^{467}\mod 10
      &\equiv 2^{1\ \ \ \ \ \ } \cdot 3^{2\ \ \ \ \ \ } \cdot 7^{3\ \ \ \ } \cdot 9^{1\ \ \ \ }\mod 10
      &\equiv 2 \ \ \ \ \ \ \cdot 9 \ \ \ \ \ \ \cdot 3 \ \ \ \ \ \cdot 9 \ \ \ \ \mod 10
      &\equiv 6 \mod 10 \end{align}$$

      Die letzte Stelle von 2019! vor den Nullen ist also die 6.

      Und jetzt bin ich auf Rolfs Lösung gespannt, die sicher eleganter ist und mit viel weniger Rechnerei auskommt.

      LLAP 🖖

      --
      „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
      1. Hallo Gunnar,

        ich versuche mal, es etwas besser aufzuschreiben als in meiner Post an Dich.

        Dies sind die Faktoren, die in 2019! eingehen:

                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                 10
                  :
                 20
                  :
                 :
                 90
                  :
                100
                  :
                110
                  :
                120
                 :
                190
                  :
                200
                :
                900
                  :
               1000
               1001
                 :
               1999
               2000
               2001
                  :
               2009
               2010
               2011
                  :
               2019
        

        Die Zahlen 1-2019 setzen sich aus 202 9er Gruppen mit Endziffern 1-9 zusammen, plus der dazwischenliegenden Zahlen mit 1, 2 oder 3 Endnullen.

        Eine solche 9er Gruppe hat, wie schon gezeigt, die gleiche Endziffer wie 9! = 362880, also 8.

        Entfernt man die 202 9er Gruppen aus Zahlen, deren Endziffer nicht 0 ist, und dividiert die verbleibenden 201 Zahlen durch 10, entsteht das Muster für die verbleibenden Zahlen neu. Die Folge ist selbstähnlich, deswegen sprach ich in der Post an Gunnar davon, dass die Lösung ein Fraktal sei.

        In den 201 verbleibenden Zahlen findet man 20 Gruppen mit Endziffer 1-9 (die Zehnerstellen aus der urspünglichen Folge), sowie einmal die Ziffer 1 (aus der 2010). Die nächste Iteration führt zu 2 Gruppen (die Hunderterstellen) und die dritte Iteration zu den Tausendern 1 und 2.

        In Summe haben wir 224 Gruppen aus den Endziffern 1-9, wir brauchen also die Endziffer von $$8^{224}$$. Wie früher im Thread gezeigt, hat die Potenzfolge der 8 einen Viererzyklus in ihren Endziffern, und weil $$224 \bmod 4 = 0$$, ist die Endziffer dieser Potenz wieder 8.

        Hinzu kommen die Tausenderstellen von 1000 und 2000 sowie die Zehnerstelle von 2010. $$8 \cdot 1 \cdot 2 \cdot 1 = 16$$, die gesuchte Ziffer lautet also 6.

        Rolf

        --
        sumpsi - posui - clusi
        1. @@Rolf B

          Die Zahlen 1-2019 setzen sich aus 202 9er Gruppen mit Endziffern 1-9 zusammen, plus der dazwischenliegenden Zahlen mit 1, 2 oder 3 Endnullen.

          Eine solche 9er Gruppe hat, wie schon gezeigt, die gleiche Endziffer wie 9! = 362880, also 8.

          Wo schon gezeigt? Ich kann dir nicht folgen.

          Die Endziffer von 9! ist doch 0, du meinst die letzte Ziffer vor der 0.

          Vor der 0 die gleiche Ziffer wie bei anderen 9er Gruppen?

          11 · 12 · 13 · 14 · 15 · 16 · 17 · 18 · 19 = 33522128640
          21 · 22 · 23 · 24 · 25 · 26 · 27 · 28 · 29 = 3634245014400
          31 · 32 · 33 · 34 · 35 · 36 · 37 · 38 · 39 = 76899763100160
          41 · 42 · 43 · 44 · 45 · 46 · 47 · 48 · 49 = 745520860465920
          51 · 52 · 53 · 54 · 55 · 56 · 57 · 58 · 59 = 4559830787191680
          61 · 62 · 63 · 64 · 65 · 66 · 67 · 68 · 69 = 20565162535357440

          Ich glaube, du darfst keine 9er Gruppen bilden, sondern musst auch die durch 5 teilbaren Zahlen (die ja auch zu den Nullen am Ende beitragen) wie die durch 10 teilbaren da rausnehmen. Vielleicht kann das deine Lösungsidee retten?

          So, glaube ich, war es eher Glückssache, dass du auf die 6 kamst.

          LLAP 🖖

          --
          „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
          1. Hallo Gunnar,

            in meinen ersten Überlegungen hatte ich die Endziffern 2 und 5 einfach rausgelassen, weil sie ja die 0 bilden. Und dann "abgekürzt" zu 9! mit Entfernen der 0. Das habe ich dann allerdings nicht mit diversen 9er Gruppen validiert, sonst wäre mir der Irrtum aufgefallen.

            Lets try again.

            Ich gucke mir erstmal in den Zahlen von 1-10 die Menge E1 = {1,3,4,6,7,8,9} an. Da ist kein Nullgenerator drin, das Produkt der Endziffern ist 36288, die Endziffer 8 ist dafür richtig.

            Der nächste Blick geht auf die Zahlen 1-99, ohne die Zehner. Die Endzifferngruppe E1 ist darin zehnmal enthalten, und die folgenden Produkte bleiben pro Zehnergruppe übrig: 2⋅5, 12⋅15, 22⋅25, 32⋅35, 42⋅45, 52⋅55, 62⋅65, 72⋅75, 82⋅85, 92⋅95

            Wenn ich mir diese Produkte anschaue, dann finde ich, dass sie alle auf genau eine Null enden, außer 72⋅75. Das liegt daran, dass eine Zahl, die auf 00 enden soll, zweimal den Primfaktor 5 braucht, also durch 25 teilbar sein muss, wofür nur 22⋅25 und 72⋅75 in Frage kommen. 22⋅25 selbst enthält den Faktor 2 nur einmal, aber beim Aufmultiplizieren kommt der Faktor 2 aus anderen Zahlen hinzu und die 5 generiert eine zusätzliche 0. Diese Teilprodukte lasse ich darum erstmal weg. Die Endziffern der übrigen Produkte sind 10, 80, 20, 90, 60, 30, 70 und 40, das führt zur signifikanten Endziffer 1⋅8⋅2⋅9⋅6⋅3⋅7⋅4=7256, also 6.

            Acht hoch Zehn hat wegen der (jetzt aber wirklich) gezeigten 8-4-2-6 Periode der Achterpotenzen die Endziffer 4. Multipliziert mit der 6 von 7256 gibt das 24, das Produkt der Zahlen von 1-99, ohne die durch 10 teilbaren Zahlen, und ohne 22⋅25 und 72⋅75, hat die Endziffer 4.

            Nun ein Blick auf die Zahlen 101-199. Hier gelten die gleichen Überlegungen, die Endziffer ist demnach ebenfalls 4.

            Für die übrigen 18 Hundertergruppen bis zur 2000 gilt das genauso. Wegen der 4-6 Periode der Viererpotenzen gilt $$4^{20} \equiv 6 \pmod{10}$$.

            Nun folgt der Blick auf 22⋅25 und 72⋅75. Je nach Hundertergruppe stecken da unterschiedlich viele Fünfen drin. Hier muss man also aufpassen.

            Letztlich muss man jede 5 aus diesen Produkten eliminieren und gegen eine 2 aufrechnen. Solange der Faktor 10 drin ist, ist es einfach, aber wenn die 2 im einen Faktor steckt und die 5 im anderen... Ach pfeif drauf, ich hab da mal was programmiert. OHNE BigInt, natürlich. Das wäre ja gemogelt.

            let p = 1;
            let borrowed=0;
            for (let i=0; i<20; i+=1) {
               let f = (50*i+11) * (20*i+5) * (25*i+18) * (4*i+3);   // Faktor 1000 gleich entfernen
               while (f % 10 == 0) f/=10;                            // Falls noch weitere Zehner drin sind
               while (f % 5 == 0) { f/=5; borrowed++; }
               while (f % 2 == 0) { f/=2; borrowed--; }
               p = (p%10000)*(f%10000);
               console.log(f + " - " + p);
            }
            console.log("borrowed: " + borrowed);
            

            D.h. wenn ich nicht mehr durch 10 teilen kann, aber durch 5, dann tu ich das, und merke mir, dass ich mir irgendwoher eine 2 borgen muss. Finde ich eine 2, dann teile ich dadurch und zahle auf das "geborgt" Konto wieder ein.

            Dumme Sache nur, am Ende bleibt das borrowed-Konto auf 12 stehen. D.h. wir müssen uns noch zwölfmal den Primfaktor 2 irgendwoher beschaffen. Da wir den Bereich 2001-2019 bisher ignoriert haben, ist das eine gute Quelle. 2002→1, 2004→2, 2006→1, 2008→3, 2012→2, 2014→1, 2016→3, 2018→1 - das sind 14, das reicht. Von 2000 und 2010 bleiben wir weg, die haben ihre eigenen 5en im Bauch, die es zu kompensieren gilt. Nach all der Kürzerei und Borgerei gibt das Script oben als letzten aufmultiplizierten Wert 8276419 aus, die Endziffer 9 für all die Mühe. Zusammen mit der Endziffer 6 aus dem vorherigen Schritt ergibt sich nun mit 9⋅6=54 die Endziffer 4 für alle Zahlen von 1-1999, die NICHT auf 0 enden.

            Es bleiben 199 Zahlen von 1-1999 übrig. Diese enden auf 0 - sowas störendes, gleich zu $$10^{199}$$ ausklammern. Nun wissen wir von oben, dass 1-99 und 101-199, ohne die 22, 25, 72, 75 Endungen, jeweils zur Endziffer 4 führen. Und für die bösen Endungen haben wir das Script: 2483217, und zwei geborgte Zweien. Die bleiben erstmal offen.

            Nun sind immer noch 19 Zahlen zu multiplizieren, die auf 0 enden (die 100er aus der Ursprungsfolge). Daraus klammern wir schnell $$10^{19}$$ aus und lassen den Rest vom Taschenrechner erledigen: 19! = 121645100408832000. Drei Nullen weg, und die 32 ist praktisch, die Zahl geht durch 4 und wir können unsere geborgten Zweien zurückzahlen. Übrig bleibt 30411275102208. Mal gucken ob es bei der 8 bleibt, oder ob noch was zu Borgen ist.

            Was bleibt? Die 2000, und nochmal 19! geteilt durch 4096 (die 12 Zweien). Letzteres ergibt 29698510842000, endet also nicht auf 5 und produziert damit keinen neuen Kredit auf dem Zweierkonto.

            Zusammenfassung der Endziffern: 4⋅7⋅8⋅2⋅2 = 896 - juhu, es kommt die 6 heraus, und diesmal hoffentlich ohne zu cheaten.

            Rolf

            --
            sumpsi - posui - clusi
            1. Hallo Rolf B,

              Zusammenfassung der Endziffern: 4⋅7⋅8⋅2⋅2 = 896 - juhu, es kommt die 6 heraus, und diesmal hoffentlich ohne zu cheaten.

              Wolfram meint, die entsprechenden Ziffern seien 056.

              Bis demnächst
              Matthias

              --
              Pantoffeltierchen haben keine Hobbys.
              ¯\_(ツ)_/¯
              1. Hallo Matthias,

                ich habe nie behauptet, dass vor den Nullen die Ziffernfolge 896 stehen würde. Um die DREI Stellen vor den Nullen zu finden, hätte ich anders vorgehen müssen (und wäre ohne zu cheaten wahrscheinlich Weihnachten fertig).

                Rolf

                --
                sumpsi - posui - clusi
              2. @@Matthias Apsel

                Wolfram meint, die entsprechenden Ziffern seien 056.

                Mein richtig brutales Script meint das auch.

                Dazu war nur für die Ausgabe

                const result = /(.)(0*)$/.exec(fact.toString());
                
                

                zu ersetzen durch

                const result = /(.{3})(0*)$/.exec(fact.toString());
                
                

                LLAP 🖖

                --
                „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
      2. @@Gunnar Bittersmann

        Also mit brutaler Kraft die Exponenten aller Primfaktoren von 2019! ermittelt …

        So richtig brutal ist, tatsächlich 2019! zu berechnen und daraus die letzte Stelle vor den Nullen und die Anzahl der Nullen zu ermitteln.

        Geht in Chrome: ☞ check it out

        Laut MDN und Can I Use sollte es auch in Firefox gehen, wenn in about:config das javascript.options.bigint-Flag gesetzt ist. Hab ich gemacht; geht bei mir trotzdem nicht: SyntaxError: identifier starts immediately after numeric literal

        Bei Änderung von 1n in BigInt(1): ReferenceError: BigInt is not defined

        Mach ich was falsch?

        LLAP 🖖

        --
        „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
        1. Hallo Gunnar,

          MDN könnte falsch sein. Laut Kangax klappt die Aktivierung erst im FF67-nightly.

          V8 scheint derzeit der einzige zu sein der es unterstützt (Chrome 72+, Node 10.9+)

          Rolf

          --
          sumpsi - posui - clusi
          1. @@Rolf B

            MDN könnte falsch sein. Laut Kangax klappt die Aktivierung erst im FF67-nightly.

            Ja, im 67er (jetzt die aktuelle Developer Edition) geht’s.

            LLAP 🖖

            --
            „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
          2. @@Rolf B

            MDN könnte falsch sein. Laut Kangax klappt die Aktivierung erst im FF67-nightly.

            Pull Request ist durch, aber MDN zeigt immer noch 65?

            LLAP 🖖

            --
            „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
    4. @@Gunnar Bittersmann

      2. Auf welche zwei Ziffern endet die Zahl 2019²⁰¹⁹? Schauen wir uns die letzten zwei Stellen von 19 an:

      19⁰ = 1
      19¹ = 19
      19² = …61
      19³ = …59
      19⁴ = …21
      19⁵ = …99
      19⁶ = …81
      19⁷ = …39
      19⁸ = …41
      19⁹ = …79
      19¹⁰ = …01
      19¹¹ = …19

      So viel muss man sich gar nicht anschauen. 19, 19², 19⁴, 19⁸, 19¹⁶ genügt.

      ☞ Lösung von Ignacio Larrosa

      LLAP 🖖

      --
      „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
      1. Hallo Gunnar Bittersmann,

        ☞ Lösung von Ignacio Larrosa

        Wirklich cool.

        Bis demnächst
        Matthias

        --
        Pantoffeltierchen haben keine Hobbys.
        ¯\_(ツ)_/¯
      2. Hallo Gunnar,

        um das zu verstehen muss ich wohl erstmal eine Weile büffeln.

        Ist das die eulersche Phi-Funktion, die er da verwendet?

        Rolf

        --
        sumpsi - posui - clusi
  3. Auf welche zwei Ziffern endet die Zahl 2019²⁰¹⁹?

    Zwischenrechnung:

    bc 1.07.1
    Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'.
    
    2019^2019
    11755143827466954841312173512942042769408447343714894220050692722579\
    84017408327367225610129275604175444997625501287899662673980514868236\
    59386673108521640944953832168934254969730054312067086752785595111221\
    22845444033939161007814859100476797568076666549236075332230630243207\
    49712547558988042266489820177805637197896560975125110946527215610970\
    02207593630169048389438520239784069885614479239243321264898720327351\
    97574065918349365114203675806518444936846025647213709069756489839130\
    24731686536879910633660997692600902172461325351104392990421915712027\
    82171142701694391115639364046181282138620925760050210229074601578685\
    00341461859952283658745180226370570161814818500341499740342423737560\
    56768159598118005313894315773728602879250524931731859590771392157214\
    38122265707713136215421199925017015075927224705810888450762386364357\
    89517917230118473442328914156941901422293730108316420983985408633262\
    56871275054636836641721799418136461766613773852372913650398393048184\
    70227281815727765615799902976238323178171448401160509187541649134927\
    58190486427586673919903372082031705095486269910666898692161893769818\
    55176216012000992121616086116171587953284115843385212563680774353647\
    10211457030745163984728214139692931607936770266244189849945959842995\
    89214461241381247462590123927958602902648391995754333386181902804333\
    32495112427420673013514235768855912409117377386284777841250933030564\
    10919582322254687108455234959799681762567203083877392159268452900709\
    02073519640667726160916140288866459229004576550037389306451242382939\
    25189759163433526024039984506965317401965767201252408594866806860526\
    48279963791125893493461525911518026629135526647579329997559110639499\
    80263215490506357659856700443911123824322077737177026338392211784211\
    99183989514779493474053249539492353605537249279342965977910145826145\
    34778653086424921157348427971140606369908998893456031464864416519086\
    14190527604682912776881797199192037428400721267107867299875626702297\
    49327121922044681073525657237793596355351199090068096954527006022302\
    35028583712873740853702497522281067856233614556573305222640137987954\
    38281257234986319696808355662022382573422394458864657308838768696298\
    07433684419342913959941026783474694210478778293378194411605060726754\
    95079664356234671815785793992196889476704255491311046724315396333574\
    12660724153923449960529894996115432386654413513560263925307397828519\
    00227265835689246220454628956773384629776298216383710060360413625089\
    51899644925015348323474296117382770165762653174698018903392498209819\
    06740873000346607374153575554733179665648594202239802446819513233272\
    92954949925122013276171880532008841861600815729563608012778290535775\
    81037034109131081939167139857460497833460052695010723500076484912595\
    64887856607416381190803687479914223341974280511107523359094800463193\
    88501155271624818783904134108033663864101876006080682223310747432272\
    94232677645974620515622562514540410839650148135667488261593284860701\
    71336285845474401703173108603122956822998717264369337256979585487634\
    87136067698533858877756777737180529899115251244192105465403834190010\
    53328249451820933090115423901436459604580213201802610959132030958540\
    28456527678582863711389338898866445718289806507885467252685044139246\
    66823384695284205465487522504747854662711713387840236806752291282667\
    95294182627921440157911077551170554569857902542094147462589155278332\
    43400078860650284398496481334451456535512399700172826358838789248774\
    89581969149978795836508368033628241551829496368930161679953489530866\
    19057659368929161580993041285478003193899987900193785377170128483973\
    24300166345845429925017824372319679449010998775083462285470698741738\
    18343886185211588150212146896645821889219388897519139164394090968286\
    56630011409284881927316666316943427632048535331203000694183304228611\
    13245492443093581325835676590480425289811777024324967937543942608471\
    06710055725536446507754397203468903243872712707688420071921236141132\
    61765144263308661860955685727745643733163405589912867116867726181896\
    96406807311645946359819095557652847665600489830857705944660791145196\
    07752033031296295953359267326759281107574617516096003650532289469483\
    98148313489727315806211927103147638241467498757563390942180803896572\
    65069813159817783744374657283033944327409482414682454512616105422129\
    11049944201234892501974689130273541487248025145935479793955862812518\
    37185544276796659011787381099789628961240363564652978851780206032341\
    74773845728675796377537772307933802890401220063879566490444401474654\
    00865809658605251067119569635385675268278584194586458709927616188985\
    97177946050486956582386122537611635797669018227597783312360241495586\
    98401948225972026830590853009482024036835801279841987063143875469415\
    26093182516056198608790511753024209968773802306563790560285043605507\
    97104127274829539313209573052132642662171347127389876645998255593218\
    88488100785529698724080028371005564638885816166833265865598012340608\
    74054919787029589105223247875534448288250253138896631507798120593720\
    82276129749202981877661993358499461898600791705762461300884230206397\
    80522681197220624406274976602981702708991109820705715529208540586341\
    97610566914080064668047616878561633899810134413820781201371330917011\
    84624413735097060121521607876453092172056151342391800294501436461365\
    71819889181572545819647821913884822564282702219540784527164849766465\
    08578139371277740069221592260887369437386219614324687150308281478034\
    92527747619610583439172890129924388463103831927518886176037940120591\
    41822207408870203931761680621457727892914080988709938860356394694458\
    95344128302114662833070480688984646609643478255949505283726278896483\
    45670241120877810457209589459623385042121122424260320610359364540725\
    20759318221570774211699574513146312349276915094237744364372176645522\
    01988233337566726220133008907419697856008862667112030022826494055802\
    08324706266109324574035608647665468769947906217094815885920904978328\
    37173846613993648860994257171065454573521779470347960289829975784819\
    85984464320415626984829433027218747721158410247487633444907249763677\
    07403542901359425392435517088981420929980910863949881765638322542312\
    72286587683844566229076851410807228511357709332395449097157670079684\
    59951481286881375038224315967950097731706513783186966932715315886323\
    09739071274991051688701644123208727836590922139205080955795515108220\
    76104673867852633505573154543491733258580019870428694533267355084551\
    37567779658279523355765112672129644055997729129632243853789533248135\
    54206884629310056891573334041153323105925054585281705804275066732701\
    03166213176751264688298944074335026609204399194532109882986217639770\
    44748382055237962604133703704120260834746723219676766933014832935966\
    27710895766924027793793888701756351046389034057900279652293801659210\
    93153320632049452659082895409547117632994214306276968361463824358488\
    27773365997174948794130858214755264649462085330091794426257967173279\
    3278321979
    

    Antwort: "7" und "9".

  4. Auf wieviele Nullen endet die Zahl 2019! = 1 · 2 · 3 · … · 2019?

    Zwischenrechnung:

    bc 1.07.1
    Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006, 2008, 2012-2017 Free Software Foundation, Inc.
    This is free software with ABSOLUTELY NO WARRANTY.
    For details type `warranty'. 
    
    i=1
    z=2
    while (z<2020) {
    i=i*z
    z++
    }
    i
    19113710486471528335521176005408654929487764047729554292305362376334\
    78932551579189331764074604655920410005943636780265723049821970056340\
    43907738165987113765387764069005506321085710579967163262131507300350\
    81002241884736027807796856713158125061188928433108139120808686735433\
    54601674586380106059393168538381824716245004609681448021752385870227\
    87301814125599799180974747179300158764864520589609258119706099585483\
    17533082560913026100482542422306076287523108289856414908831016071206\
    57186333233998842226136414531561046808973511504118062824563917618136\
    95688956065933111266382757037672058813983554167527650803136376491179\
    34493379452729005657225549674657637849353159767425876099814351240222\
    59606639467923471573630790267495847048634650080678183483470347139838\
    99904332516987702636384513981337290302003616155835870003776972085224\
    44791189801151363505272184032084166824269429981293839199721695199781\
    71496796232946020708155946845097661717939650356791733567939660475428\
    89480654080253008541200639351942844372439566859975106980096648383163\
    17934570479079494272271117126711984686969838006945893518674530128988\
    44014695067011810570489667038251253235911701981151426587817334376247\
    41835589197125577341510239505456976965151430699104626619260116831699\
    28555808027000798794101785027171004323442136636762150307440552219456\
    89656967551300904205630374188483348719848277572729327019969711027332\
    32823437584814577496583780407805949317985620208922925671397497233500\
    23151981648140325910977041506896237212918105325754371274801116790621\
    22936332180959953908897460999714176208733421201387195025849819741663\
    42874613868837943481496347263036189448228907152257094166058536751310\
    40041097530174023649919640601887498490494173613707304774842988549225\
    92732693030683633068050127536480138776901628000712861095756767622676\
    04871282491305533617358759595263405666879507919279147333102319714528\
    26044308325753572807461184603286572146537957726315521768717952602626\
    23648497920036872149441406071618009612986617367426715777279142709297\
    00240142414540901036612828757058499986244986417726455234577327609500\
    22647909279028886530735805198077177501501618001466056557814049749367\
    38647525493696328814037100841693390633317197157635426439704390418338\
    75817228471215106121727914942727330383977073972042102390735678429397\
    18100865639237473929473634641601274254961286144915965806310982900706\
    84482315143472345003354688653837717072889186292986282169623105464085\
    35562671630900567261988735655794592778405243729247592508137419804768\
    26769405492837995662197070734356975191342183619910896914847996414795\
    64119315042528689374774262665989456944765954464202853070738451841101\
    97636448399813022337267427471316850326669152344427997008142025679631\
    88001890312314496399793719874516899863222142604319191694451085221609\
    41086467460895779526222474877762118333301844904062451815470417693032\
    62292112773413400130547803734342706039929322314715547636541542617548\
    03824629549598010905666980567806887141524623508963823800476507135517\
    14821907741082505144582330978758559552883227547659517234367890274261\
    18812004108060403309301579810288198515501633361000542880333410259395\
    41330886642399679847148420974705336692323077419904895520606086545936\
    94095162368309898095000982095940386253588721287170815770207358870453\
    54994934367988692370101810740282635661344174487640732158159024394680\
    83101085282367234667288914934380947990707467172997241688870281367134\
    59624710807161744945841589096518177625410289252247280261279000158828\
    95061146650128133137309325197291516500444828578545757779443619955859\
    68145981139939252322607261014407061036298518913098751864388934622257\
    89646645311383880897940572735398750336483563340049456738318956931059\
    12552981313692740302151281077641386180811542070432718827793374872079\
    34928099314534618160815686295107106028865394794227280437011654600862\
    19286155052733424226196880737325415481599640289781351473080669481641\
    75689281785022336018291970737221348500635807309116717067808432672674\
    71101886854731480582363826990377973316152400592847251211122388834594\
    39887299060756779674303720573787067633924968096998223155122450496253\
    39540408993284896037409774025663070557088628107550787462247559731260\
    80079543622099007941145191172376369084873618715041405043346584642976\
    49572506876838854875071676568318653269767747293342781217629162017151\
    87894363969793147324069647795431674707164041975126672716686655630698\
    48736964999883472128887277927944472237673206379394094219663539521100\
    85249047416018279400434874956286061172208843574184653324207325890708\
    88120833592559148535394751133398644981789429692373238027440492179002\
    38404057889954336522497339147801441525727144033293860834050036201230\
    34170891182138588352748404055114847046523686615369391724477615309120\
    42139162669125404964882013794447925007686825524877239653859493282231\
    63515600566424726102591331466292351598788082426658768239021720641998\
    53305590534088925267246481437692134558003668946653254392396592626441\
    33421240194532982390201526431630708356945177444102701165769433855734\
    58472348130467212856198212591692539202752958643197184517207133333172\
    79600520653780917457502474640769141831237420131738944803847814267269\
    43546662807602036830754724185398247594681194502013224849309210047925\
    46712174196561985991571201233646609513867825502170542911532387348320\
    92163186707857378830270958895817960081723545872973827025277795848950\
    21802422698611830685759198828216203825170326696182025876930560000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    0000000000000000000
    
    $ echo -n "0000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    00000000000000000000000000000000000000000000000000000000000000000000\
    0000000000000000000" | tr -cd "0"| wc -m
    502
    

    502

    Für einen "Einzeiler" nehme ich aber Geld :-)