import gmpy2 from gmpy2 import mpz def is_quadratic_residue(b, p): b = mpz(b) p = mpz(p) if b % p == 0: return True e = (p - 1) // 2 result = gmpy2.powmod(b, e, p) if result == 1: return True elif result == p - 1: return False else: return False p = mpz(11) b_input = input("Podaj wartość b: ") try: b = mpz(b_input) except ValueError: print("Błędne dane: b musi być liczbą całkowitą.") exit() if b < 0 or b >= p: print("Błędne dane: b musi być w zakresie 0 <= b < p.") else: if is_quadratic_residue(b, p): print(f"{b} jest resztą kwadratową modulo {p}.") else: print(f"{b} nie jest resztą kwadratową modulo {p}.")