原根总结 (poj 1284)

原根小结 (poj 1284)

关于原根的一些知识点:

定义1:原根总结 (poj 1284)原根总结 (poj 1284),使得原根总结 (poj 1284)成立的最小的原根总结 (poj 1284),称为原根总结 (poj 1284)对模原根总结 (poj 1284)的阶,记为原根总结 (poj 1284)


定理1:如果模原根总结 (poj 1284)有原根,那么它一共有原根总结 (poj 1284)个原根。


定理2:原根总结 (poj 1284)原根总结 (poj 1284)原根总结 (poj 1284),则原根总结 (poj 1284)


定理3:如果原根总结 (poj 1284)为素数,那么素数原根总结 (poj 1284)一定存在原根,并且模原根总结 (poj 1284)的原根的个数为原根总结 (poj 1284)


定理4:原根总结 (poj 1284)是正整数,原根总结 (poj 1284)是整数,若原根总结 (poj 1284)原根总结 (poj 1284)的阶等于原根总结 (poj 1284),则称原根总结 (poj 1284)为模原根总结 (poj 1284)的一个原根。


   假设一个数原根总结 (poj 1284)对于模原根总结 (poj 1284)来说是原根,那么原根总结 (poj 1284)的结果两两不同,且有原根总结 (poj 1284),那么原根总结 (poj 1284)可以称为是模原根总结 (poj 1284)的一个原根,归根到底就是原根总结 (poj 1284)当且仅当指数为原根总结 (poj 1284)的时候成立。(这里原根总结 (poj 1284)是素数)


定理5:模原根总结 (poj 1284)有原根的充要条件:原根总结 (poj 1284),其中原根总结 (poj 1284)是奇素数。

 


求模素数原根总结 (poj 1284)原根的方法:原根总结 (poj 1284)素因子分解,即原根总结 (poj 1284)原根总结 (poj 1284)的标准分解式,若恒有


          原根总结 (poj 1284)


成立,原根总结 (poj 1284)就是原根总结 (poj 1284)的原根。(对于合数求原根,只需把原根总结 (poj 1284)换成原根总结 (poj 1284)即可)

以上内容转自http://blog.csdn.net/acdreamers/article/details/8883285


求原根的代码:


题目:

poj 1284
题意:
给出一个数n,求原根数目。
限制:
3 <= n < 65536; n为奇素数。
思路:
因为n是素数,所以模n的原根数=phi(phi(n))=phi(n-1)。
phi(i) 可以预处理出来。