Kryptografia/miniprojekt1/zad4.py

29 lines
574 B
Python

# reszta kwadratowa
a = int(input("Podaj a -> liczba do sprawdzenia: "))
p = int(input("Podaj p -> liczba pierwsza modulo: "))
def potegowanieimod(b, k, n):
y = 1
while k > 0:
if k & 1:
y = y*b % n
b = b**2 % n
k = k >> 1
return y
#Symbol Legendre'a
l = potegowanieimod(a, (p-1)//2, p)
if l == 0:
print("a jest wielokrotnością p")
elif l == 1:
print("a jest resztą kwadratową")
else:
print("a nie jest resztą kwadratową")
# reszta kwadratowa to takie a ze istnieje x nalezące do Zp
# x^2 = a (mod p)