From: Peter Schaefer Date: Tue, 5 Jun 2012 20:21:28 +0000 (+0200) Subject: [py] legendre legendre_tex X-Git-Url: https://git.leopard-lacewing.eu/?a=commitdiff_plain;h=96deddde430574afcac5618b6cf52f3edef81d8d;p=zahlenTA.git [py] legendre legendre_tex --- diff --git a/UE/lib.py b/UE/lib.py index 50d65c9..64a8c67 100644 --- 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 diff --git a/UE/python/test.pdf b/UE/python/test.pdf index c896ca2..06d4625 100644 Binary files a/UE/python/test.pdf and b/UE/python/test.pdf differ diff --git a/UE/python/test.tex b/UE/python/test.tex index d909ab9..eb09f71 100644 --- a/UE/python/test.tex +++ b/UE/python/test.tex @@ -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}