b = -b
y[1] = -1
q = int(a / b)
- print "\\begin{array}{ccccccc}"
- print " r_{i-2} & r_{i-1} & q_i & x_{i-2} & x_{i-1} & y_{i-2} & y_{i-1}\\\\\\hline"
- print " ", a, "&" , b , "&" , q, "&" , x[0], "&", x[1] , "&", y[0] , "&" , y[1], "\\\\"
+ print("\\begin{array}{ccccccc}")
+ print(" r_{i-2} & r_{i-1} & q_i & x_{i-2} & x_{i-1} & y_{i-2} & y_{i-1}\\\\\\hline")
+ print(" ", a, "&" , b , "&" , q, "&" , x[0], "&", x[1] , "&", y[0] , "&" , y[1], "\\\\")
while a % b:
[a , b] = [b, a - q * b]
x = [x[1], x[0] - q * x[1]]
y = [y[1], y[0] - q * y[1]]
q = int(a / b)
if a % b:
- print " ", a, "&" , b , "&" , q, "&" , x[0], "&", x[1] , "&", y[0] , "&" , y[1], "\\\\"
+ print(" ", a, "&" , b , "&" , q, "&" , x[0], "&", x[1] , "&", y[0] , "&" , y[1], "\\\\")
else:
- print " \\cline{2-2}\\cline{5-5}\\cline{7-7}"
- print " \multicolumn{1}{l|}{", a, "}& \multicolumn{1}{l|}{" , b ,
- print "}&&\multicolumn{1}{l|}{" , x[0], "}&\multicolumn{1}{l|}{", x[1] ,
- print "}&\multicolumn{1}{l|}{", y[0] , "}&\multicolumn{1}{l|}{" , y[1], "}\\\\"
- print " \\cline{2-2}\\cline{5-5}\\cline{7-7}"
- print "\\end{array}",
+ print(" \\cline{2-2}\\cline{5-5}\\cline{7-7}")
+ print(" \multicolumn{1}{l|}{", a, "}& \multicolumn{1}{l|}{" , b ,)
+ print("}&&\multicolumn{1}{l|}{" , x[0], "}&\multicolumn{1}{l|}{", x[1] ,)
+ print("}&\multicolumn{1}{l|}{", y[0] , "}&\multicolumn{1}{l|}{" , y[1], "}\\\\")
+ print(" \\cline{2-2}\\cline{5-5}\\cline{7-7}")
+ print("\\end{array}",)
return [b, x[1], y[1]]
# groesster gemeinsamer Teiler
stack = [[z, n], [0, 0]]
l = -1
d = +1
- print "\\begin{align}"
+ print("\\begin{align}")
while len(stack) > 1:
[z, n] = stack.pop(0)
stack.append([0, 0])
l = l + 1
if(l == 0):
- print "\n &=",
+ print("\n &=",)
elif(l > 3):
- print "\\\\ \n &=",
+ print("\\\\ \n &=",)
l = 1
else:
- print "\n =",
+ print("\n =",)
if(d < 0):
- print "-",
+ print("-",)
continue
- print " \\legend[L]{", z, "}{", n, "}",
+ print(" \\legend[L]{", z, "}{", n, "}",)
if(z > n):
stack.append([z % n, n])
if (n % 4 == 3 and z % 4 == 3):
d = d * (-1)
- print
- print " =", d
- print "\\end{align}"
+ print()
+ print(" =", d )
+ print("\\end{align}")
return d
# Jacobi Symbol
def jacobi(z, n):
d = +1
while 1:
+# print(z, "/", n)
if(z > n):
z = z % n
continue
def jacobi_tex(z, n):
l = -2
d = +1
- print "\\begin{align}"
+ print("\\begin{align}")
while 1:
l = l + 1
if(l == 0):
- print " \n&=",
+ print(" \n&=",)
l = 1
elif(l > 3):
- print "\\\\ \n&=",
+ print("\\\\ \n&=",)
l = 1
elif(l>0):
- print "\n=",
+ print("\n=",)
if(d < 0):
- print "-",
+ print("-",)
- print " \\legend[J]{", z, "}{", n, "}",
+ print(" \\legend[J]{", z, "}{", n, "}",)
if(z > n):
if (n % 4 == 3 and z % 4 == 3):
d = d * (-1)
- print
- print "=", d
- print "\\end{align}"
+ print()
+ print("=", d)
+ print("\\end{align}")
return d
#Square and Multiply (x,k,*,e) mit TeX Ausgabe
def sqmult_tex(x,k,func,e):
- y = e
- print "\\begin{array}{cccc}"
- print " x & y & k & k \\mod 2\\\\\\hline"
- print " ", x, "&" , y , "&" , k, "&" , k%2, "\\\\"
+
+ y = e;
+ print("\\begin{array}{cccc}")
+ print(" x & y & k & k \\mod 2\\\\\\hline")
+ print(" ", x, "&" , y , "&" , k, "&" , k%2, "\\\\")
+
while k:
if(k%2):
y = func(y,x)
x = func(x,x)
k = k/2
- print " ", x, "&" , y , "&" , k, "&" , k%2, "\\\\"
- print "\\end{array}"
+ print(" ", x, "&" , y , "&" , k, "&" , k%2, "\\\\")
+ print("\\end{array}")
return y
# Berechnet die Fermat'sche Zahl F_n
while u<=(N+1)/2:
if(int((u**2-N)**0.5)==(u**2-N)**0.5):
v = int((u**2-N)**0.5)
- print v
+ print(v)
return [u+v,u-v]
u = u+1