def euclid(a, b):
if a > b & b >= 0:
r = a % b
if r > 0:
a = b
b = r
else:
return b
else:
t = a
a = b
b = t
return euclid(a, b)
euclid(710, 310)
euclid(60, 24)
euclid(55, 22)
def new_euclidean(a, b):
r = a % b
if r > 0:
a = b
b = r
else:
return b
return new_euclidean(a, b)
new_euclidean(18, 12)
new_euclidean(12, 18)
new_euclidean(11, 10)
new_euclidean(10, 11)
def extended_euclid(a, b):
if a > b & b >= 0:
if b == 0:
return a, 1, 0
else:
d, x, y = extended_euclid(b, a % b)
return d, y , x - (a // b) * y
else:
t = a
a = b
b = t
return extended_euclid(a, b)
extended_euclid(42, 30)
extended_euclid(11, 10)
extended_euclid(18, 12)
def new_extended_euclidean(a, b):
if b == 0:
return a, 1, 0
else:
d, x, y = extended_euclid(b, a % b)
return d, y , x - (a // b) * y
new_extended_euclidean(1759, 550)
new_extended_euclidean(42, 30)
new_extended_euclidean(624, 36)
gf = GF(17)
gf(13) - gf(16)
gf(11) + gf(10)
gf(3) * gf(8)
gf(5^(-1))
big_gf=GF(503777509)
big_gf(987654321^(-1))
gcd(24, 300)
gcd(4567, 4731907)
gcd(100, 1015)
10
12
11
6
6
1
1
(6, -2, 3)
(1, 1, -1)
(6, 1, -1)
(1, -111, 355)
(6, -2, 3)
(12, 1, -17)
14
4
7
7
184455016
12
1
5