(a,m)=1,若,则称a为模N的原根。
以下程序只能判断结果为简化剩余系情况下的模N的原根。
对于模4的primitive_root=3,模9的primitive_root=2,5这些情况无法判断。
def find_primitive_root(n):for base in range(1,n):l=[]for index in range(1,n):l.append(pow(base,index,n))if len(set(l))==n-1:print('primitive root {} of {}'.format(base,n))find_primitive_root(11)
# primitive root 2 of 11
# primitive root 6 of 11
# primitive root 7 of 11
# primitive root 8 of 11