高大上的数论,先入门再说。
原根的定义可以到wiki上找,上面介绍得很清楚。
如果你是个热(bu)爱(dong)祖(ying)国(yu)的人,看这个blog就行了
1、51nod 1135
奇怪的oj,还是放链接吧
求奇素数n最小的原根。
从2~n-1枚举x,判断x是否满足x^j mod n != 1 j=2,3,4,...,phi(n)-1
暴力判断会T,需要跟快的算法。
wiki介绍了一个方法。
设phi(n)=p1^k1*p2^k2......pm^km
那么x是n的一个原根充要条件为
x^(phi(n)/pj) mod n != 1 j = 1,2,3...m
证明:
若存在j使得x^(phi(n)/pj) mod n = 1,不必说,x不是原根
如不存在j满足条件,假设t满足x^t mod n = 1
那么x^(phi(n)-t) mod n =1