Write inverse
This commit is contained in:
parent
a78c9f558a
commit
b4c5c1526a
2 changed files with 18 additions and 2 deletions
|
@ -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
16
algebre-non-lineaire/inverse.py
Normal file → Executable 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()
|
||||
|
|
Loading…
Reference in a new issue