Kryptografia/miniprojekt1/zad1.py

31 lines
711 B
Python

# zad 1 - odwrotność w grupie fi
n = int(input("Podaj n -> fi(n): "))
b = int(input("Podaj b -> liczbę: "))
x = 1
y = 0
def eulkides(a, b):
global x
global y
if (b != 0):
eulkides(b, a % b)
pom = y
y = int(x - a // b * y)
#print("y = {} - {} / {} * {}, x = {}".format(x, a, b, pom, pom))
x = int(pom)
wynik = 0
found = False
for i in range(1, n):
wynik = (i * b) % n
if wynik == 1:
x, y = 1, 0
eulkides(n, wynik)
if n * x + wynik * y == 1:
found = True
wynik = i
break
if found:
print("Liczba odwrotna do {}, to: {}".format(b, wynik))
else:
print("Liczba odwrotna nie istnieje")