]> git.leopard-lacewing.eu Git - zahlenTA.git/commitdiff
[py] legendre legendre_tex
authorPeter Schaefer <schaeferpm@gmail.com>
Tue, 5 Jun 2012 20:21:28 +0000 (22:21 +0200)
committerPeter Schaefer <schaeferpm@gmail.com>
Tue, 5 Jun 2012 20:21:28 +0000 (22:21 +0200)
UE/lib.py
UE/python/test.pdf
UE/python/test.tex

index 50d65c96378234ccfd4a89b54a502d086f1ce7fd..64a8c67d96e379df7f05270382b1af59473f6c5b 100644 (file)
--- a/UE/lib.py
+++ b/UE/lib.py
@@ -121,7 +121,7 @@ def euklid(a,b):
         q = a/b
     return [b,x[1],y[1]]
 
-#erweiterter Euklid mit TeX ausgabe
+#erweiterter Euklid mit TeX Ausgabe
 def euklid_tex(a,b):
     if a < b:
         tmp = a
@@ -167,4 +167,85 @@ def ordm(a,m):
     while ae%m!=1:
         ae=ae*a
         e = e+1
-    return e 
+    return e
+
+# Legendre Symbol
+def legendre(z,n):
+    stack = [[z,n]]
+    d = +1
+    while len(stack):
+        [z,n] = stack.pop(0)
+        print z,"/",n
+        if(z>n):
+            stack.append([z%n, n])
+            continue
+
+        fac = factorD(z).keys()
+        if(len(fac)>1):
+            stack[len(stack):] = map(lambda x:[x,n],fac)
+            continue
+        
+        if(z==2):
+            if(n%8==3 or n%8==5):
+                d = d*(-1)
+            continue
+        if(z==1):
+            continue
+        
+        stack.append([n,z])
+        if (n%4==3 and z%4==3):
+            d = d* (-1)
+        
+    return d
+
+#Legendre Symbol mit TeX Ausgabe
+def legendre_tex(z,n):
+    stack = [[z,n],[0,0]]
+    l=-1
+    d = +1
+    print "\\begin{align}"
+    while len(stack)>1:
+        [z,n] = stack.pop(0)
+
+        if([z,n]==[0,0]):
+            stack.append([0,0])
+            l = l+1
+            if(l==0):
+                print "\n&=",
+            elif(l>3):
+                print "\\\\ \n&=",
+                l = 1
+            else:
+                print "\n=",
+            if(d<0):
+                print "-",
+            continue
+        print "\\legend[L]{",z,"}{",n,"}",
+        
+        if(z>n):
+            stack.append([z%n, n])
+            continue
+
+        fac = factorD(z).keys()
+        if(len(fac)>1):
+            stack[len(stack):] = map(lambda x:[x,n],fac)
+            continue
+        
+        if(z==2):
+            if(n%8==3 or n%8==5):
+                d = d*(-1)
+            continue
+        if(z==1):
+            continue
+        
+        stack.append([n,z])
+        if (n%4==3 and z%4==3):
+            d = d* (-1)
+    
+    print
+    print "=",d        
+    print "\\end{align}"    
+    return d
+
+
+legendre_tex(69,97)
\ No newline at end of file
index c896ca2e171c0dbf230a11122ac4091dec8e9dfb..06d4625a0507130df4b3299a66919b600f03db65 100644 (file)
Binary files a/UE/python/test.pdf and b/UE/python/test.pdf differ
index d909ab9f9e4c635f8b16470a814bd53d86195b9f..eb09f71adbb2315214dacbb35ab5dfd6ff0534e1 100644 (file)
@@ -1,16 +1,40 @@
 %& -shell-escape
 \documentclass[a4paper,10pt,fleqn]{article}
-\usepackage{../template}
-\usepackage{python}
+
+
+\usepackage[utf8x]{inputenc}
+\usepackage{amsmath,amssymb,ulsy,amsthm}
+\usepackage{fullpage}
+%\usepackage{txfonts}
+\usepackage[ngerman]{babel}
+\usepackage{fixltx2e}   %Deutschsprach Bugs
+%\usepackage[T1]{fontenc}
+%\usepackage{lmodern}
+
+\usepackage{graphicx}
+\usepackage{fancyhdr}
+% \usepackage{emaxima}
+
+
+\newcommand{\legend}[3][]{\left( \frac{#2}{#3}\right)_{#1}}
+
 
 \begin{document}
 
+\begin{align}
+\legend{ 69 }{ 97 } 
+&= \legend[L]{ 3 }{ 97 } \legend[L]{ 23 }{ 97 } 
+= \legend[L]{ 97 }{ 3 } \legend[L]{ 97 }{ 23 } 
+= \legend[L]{ 1 }{ 3 } \legend[L]{ 5 }{ 23 } 
+= \legend[L]{ 23 }{ 5 } \\ 
+&= \legend[L]{ 3 }{ 5 } 
+= \legend[L]{ 5 }{ 3 } 
+= \legend[L]{ 2 }{ 3 }
+= -1
+\end{align}
 
 
-\begin{python}
-import lib
-euklid_tex(
-\end{python}
 
 
 \end{document}