def __init__(self, *arg): if len(arg) == 1: if arg[0] <= 1: raise ValueError("Field order must be at least 2") self._base = numeric.first_divisor(arg[0]) self._pow = 1 self._order = self._base while self._order < arg[0]: self._pow += 1 self._order *= self._base elif len(arg) == 2: self._base, self._pow = arg[0], arg[1] if self._pow < 1 or self._base < 2: raise ValueError("Field order must be at least 2") self._order = self._base ** self._pow
def __init__(self, *arg): if len(arg) == 1: if arg[0] <= 1: raise ValueError("Field order must be at least 2") self._base = numeric.first_divisor(arg[0]) self._pow = 1 self._order = self._base while self._order < arg[0]: self._pow += 1 self._order *= self._base elif len(arg) == 2: self._base, self._pow = arg[0], arg[1] if self._pow < 1 or self._base < 2: raise ValueError("Field order must be at least 2") self._order = self._base**self._pow
def is_prime(n): return n == first_divisor(n)