]> git.leopard-lacewing.eu Git - zahlenTA.git/commitdiff
UE5 Aufgabe 25-28 Sollte passen
authorPeter Schaefer <schaeferpm@gmail.com>
Sun, 10 Jun 2012 16:03:12 +0000 (18:03 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Sun, 10 Jun 2012 16:03:12 +0000 (18:03 +0200)
UE/lib.py
UE/ue5.pdf
UE/ue5.tex

index 245f7580a62470d3bc64961d0a5f18b62d19c91c..068f0f86de69638ea390e0b41ca6d9546a9d16c1 100644 (file)
--- a/UE/lib.py
+++ b/UE/lib.py
@@ -364,5 +364,3 @@ def sqmult_tex(x,k,func,e):
         print " ", x, "&" , y , "&" , k, "&" , k%2, "\\\\"
     print "\\end{array}"
     return y
-
-
index 331ada58905101e7b1d3d36ea40c55366deb69a7..dba635b2147e7677e7e2e122ae80d40c312f073f 100644 (file)
Binary files a/UE/ue5.pdf and b/UE/ue5.pdf differ
index ffa908111bc4465040e30ca8ef1b9fd9d53ec61a..ccfbf088fffd46488076fb38ac2ace7fd561cecb 100644 (file)
@@ -11,7 +11,8 @@
 
 \aufgabe{25}
 {$p=2^{43112609}-1$ ist die zur Zeit größte bekannte Primzahl. Wie kann man ihre Stellenanzahl am einfachsten berechnen und was sind ihre $3$ Endziffern?}
-
+Die Anzahl der Stellen einer Zahl können mit $\log_{10}$ berechnet werden. Daher ist $\log_{10} 2^{43112609} = 43112609\cdot\log_{10} 2 \approx 12978188.5003$\\
+Für die letzten 3 Stellen berechnet man nun:
 \begin{align}
  2^{43112609} \in (\Z_{1000}, * \mod 1000, 1) \text{, d.h. }x=2, k=43112609
 \end{align}
@@ -24,6 +25,29 @@ lib.sqmult_tex(2,43112609,lambda x,y:(x*y)%1000,1)
 \begin{align}
  p=2^{43112609} \mod 1000 &\equiv 512 \Rightarrow 2^{43112609}-1 \mod 1000 \equiv 511
 \end{align}
+\newpage\noindent
+Oder aber man Überlegt sich vorher eine Sinnvolle Zerlegung des Exponenten und Verkürzt so den SM Algorithmus:\\
+Die letzten drei Ziffern entsprechen $2^{43112609} -1 \mod 1000$. Mithilfe von $\varphi(1000) = 400$ lässt sich nun der Exponent zerlegen.
+\begin{align}
+43112609 &= \alpha 400 + \beta\\
+&=  107781\cdot 400 + 209\\
+\end{align}
+Da aber $a^{\varphi(n)}\equiv1\mod n$ ist, gilt:
+\begin{align}
+ 2^{43112609} -1 \mod 1000&=2^{107781\cdot 400 + 209} -1 \mod 1000\\
+ &=2^{209} -1 \mod 1000
+\end{align}
+$2^{209}-1 \mod 1000$ lässt sich nun einfach mit dem Square and Multiply Algorithmus berechnen:
+\begin{center}
+$\begin{python}
+import lib
+lib.sqmult_tex(2,209,lambda x,y:(x*y)%1000,1)
+\end{python}$
+\end{center}
+Daraus Folgt nun
+\begin{align}
+ p=2^{209} \mod 1000 &\equiv 512 \Rightarrow 2^{43112609}-1 \mod 1000 \equiv 511
+\end{align}
 
 
 \aufgabe{26}