Quadratic Residue
Basic
a**2 = x mod pBrute Force
p = 71
for a in range(p):
qr = (pow(a, 2, p))
print(f"a={a} : qr={qr}")Legendre Symbol
# `a` is a quadratic residue and `a != 0 mod p`
a**(p-1)/2 mod p == 1
# `a` is a quadratic non-residue mod p
a**(p-1)/2 mod p == -1
# `a ≡ 0 mod p`
a**(p-1)/2 mod p == 0References
Last updated