Write inverse

This commit is contained in:
flyingscorpio@pinebookpro 2022-01-24 17:56:46 +01:00
parent a78c9f558a
commit b4c5c1526a
2 changed files with 18 additions and 2 deletions

View file

@ -24,6 +24,8 @@ def calculate(a, b):
u est associé à a et v est associé à b, dans tous les cas. S'il faut échanger
les associations, il faut donc échanger a et b à l'appel de cette fonction.
Retourne pgcd, u
"""
# Initialisation
@ -48,7 +50,7 @@ def calculate(a, b):
print("au + bv = pgcd(a, b)")
print(f"{a} * {u[-2]} + {b} * {v[-2]} = {r[-2]}")
return u[-2]
return r[-2], u[-2]
def print_table(r, u, v, q):

16
algebre-non-lineaire/inverse.py Normal file → Executable file
View file

@ -9,10 +9,24 @@ import sys
import euclide_etendu
def main()
def main():
if len(sys.argv) == 3:
a = int(sys.argv[1])
n = int(sys.argv[2])
else:
a = int(input("a : "))
n = int(input("n : "))
# On veut associer le coefficient de Bezout u à a, donc l'ordre des paramètres
# est important :
pgcd, u = euclide_etendu.calculate(a, n)
if pgcd != 1:
print(f"{a} est non inversible dans Z/{n}Z")
else:
inverse = (u + n) % n
print(f"L'inverse de {a} dans Z/{n}Z est {inverse}")
if __name__ == "__main__":
main()