File "/home/wstein/sage/local/lib/python2.6/site-packages/sage/rings/arith.py", line 2504, in crt
raise ValueError, "arguments a and b must be coprime"
ValueError: arguments a and b must be coprime
}}}
{{{id=32|
///
}}}
{{{id=21|
///
}}}
Extended Euclidean Algorithm (XGCD)
{{{id=30|
XGCD(59, 130)
///
(1, -11, 5)
}}}
{{{id=31|
XGCD?
///
}}}
{{{id=26|
@interact
def _(a=59, b=130):
g, x, y = XGCD(a,b)
print "%s*(%s) + %s*(%s) = %s"%(a,x,b,y,g)
///
}}}
XGCD also works for polynomials:
{{{id=20|
R. = QQ['x']
XGCD(3*x*(x-1), 15*x^3*(x-1))
///
(x^2 - x, 1/3, 0)
}}}
{{{id=24|
///
}}}
Multiplicative Inverses
{{{id=29|
Mod(6, 13)^(-1)
///
11
}}}
{{{id=28|
1 / Mod(6,13)
///
11
}}}
{{{id=27|
@interact
def _(a=6, n=13):
try:
x = Mod(a,n)^(-1)
except:
print "No inverse"
else:
print "%s * %s = 1 (mod %s)"%(x, a, n)
///
}}}
Addition and Multiplication Tables Modulo $n$
{{{id=36|
@interact
def _(n=(2..100)):
A = matrix(ZZ, n, [(i+j)%n for i in [0..n-1] for j in [0..n-1]])
show(plot(A))
///
}}}
{{{id=37|
@interact
def _(n=(2..100)):
A = matrix(ZZ, n, [(i*j)%n for i in [0..n-1] for j in [0..n-1]])
show(plot(A))
///
}}}
{{{id=35|
///
}}}
{{{id=19|
///
}}}